[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f9d3cad9-6d7d-4aa1-9592-79300812dce4@molgen.mpg.de>
Date: Wed, 6 Mar 2024 16:10:04 +0100
From: Paul Menzel <pmenzel@...gen.mpg.de>
To: Yu Kuai <yukuai1@...weicloud.com>
Cc: xni@...hat.com, zkabelac@...hat.com, agk@...hat.com, snitzer@...nel.org,
mpatocka@...hat.com, dm-devel@...ts.linux.dev, song@...nel.org,
heinzm@...hat.com, jbrassow@...hat.com, neilb@...e.de,
linux-kernel@...r.kernel.org, linux-raid@...r.kernel.org,
yi.zhang@...wei.com, yangerkun@...wei.com, yukuai3@...wei.com
Subject: Re: [PATCH md-6.8 v2 2/9] md: export helpers to stop sync_thread
Dear Kuai,
Am 05.03.24 um 09:13 schrieb Yu Kuai:
> 在 2024/03/05 16:08, Paul Menzel 写道:
>> Am 05.03.24 um 08:22 schrieb Yu Kuai:
>>> From: Yu Kuai <yukuai3@...wei.com>
>>>
>>> The new heleprs will be used in dm-raid in later patches to fix
>>
>> hel*pe*rs
>>
>>> regressions and prevent calling md_reap_sync_thread() directly.
>>
>> Please list the new functions.
>>
>> 1. md_idle_sync_thread(struct mddev *mddev);
>> 2. md_frozen_sync_thread(struct mddev *mddev);
>> 3. md_unfrozen_sync_thread(struct mddev *mddev);
>>
>> I do not like the naming so much. `md_reap_sync_thread()` has the verb
>> in imperative mood. At least myself, I would not know what the
>> functions do exactly without looking at the implementation.
>
> Thanks for the suggestions, I'm not that good at naming :(
>
> Usually I'll send a new version with updated naming, however, we must
> merge this set ASAP now, perhaps can we live with this for now?
Fine by me. Maybe when applying the typo can be fixed, and the naming
than later.
Kind regards,
Paul
>>> Signed-off-by: Yu Kuai <yukuai3@...wei.com>
>>> Signed-off-by: Xiao Ni <xni@...hat.com>
>>> Acked-by: Mike Snitzer <snitzer@...nel.org>
>>> ---
>>> drivers/md/md.c | 29 +++++++++++++++++++++++++++++
>>> drivers/md/md.h | 3 +++
>>> 2 files changed, 32 insertions(+)
>>>
>>> diff --git a/drivers/md/md.c b/drivers/md/md.c
>>> index 23f31fd1d024..22e7512a5b1e 100644
>>> --- a/drivers/md/md.c
>>> +++ b/drivers/md/md.c
>>> @@ -4919,6 +4919,35 @@ static void stop_sync_thread(struct mddev
>>> *mddev, bool locked, bool check_seq)
>>> mddev_lock_nointr(mddev);
>>> }
>>> +void md_idle_sync_thread(struct mddev *mddev)
>>> +{
>>> + lockdep_assert_held(&mddev->reconfig_mutex);
>>> +
>>> + clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
>>> + stop_sync_thread(mddev, true, true);
>>> +}
>>> +EXPORT_SYMBOL_GPL(md_idle_sync_thread);
>>> +
>>> +void md_frozen_sync_thread(struct mddev *mddev)
>>> +{
>>> + lockdep_assert_held(&mddev->reconfig_mutex);
>>> +
>>> + set_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
>>> + stop_sync_thread(mddev, true, false);
>>> +}
>>> +EXPORT_SYMBOL_GPL(md_frozen_sync_thread);
>>> +
>>> +void md_unfrozen_sync_thread(struct mddev *mddev)
>>> +{
>>> + lockdep_assert_held(&mddev->reconfig_mutex);
>>> +
>>> + clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
>>> + set_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
>>> + md_wakeup_thread(mddev->thread);
>>> + sysfs_notify_dirent_safe(mddev->sysfs_action);
>>> +}
>>> +EXPORT_SYMBOL_GPL(md_unfrozen_sync_thread);
>>> +
>>> static void idle_sync_thread(struct mddev *mddev)
>>> {
>>> mutex_lock(&mddev->sync_mutex);
>>> diff --git a/drivers/md/md.h b/drivers/md/md.h
>>> index 8d881cc59799..437ab70ce79b 100644
>>> --- a/drivers/md/md.h
>>> +++ b/drivers/md/md.h
>>> @@ -781,6 +781,9 @@ extern void md_rdev_clear(struct md_rdev *rdev);
>>> extern void md_handle_request(struct mddev *mddev, struct bio *bio);
>>> extern int mddev_suspend(struct mddev *mddev, bool interruptible);
>>> extern void mddev_resume(struct mddev *mddev);
>>> +extern void md_idle_sync_thread(struct mddev *mddev);
>>> +extern void md_frozen_sync_thread(struct mddev *mddev);
>>> +extern void md_unfrozen_sync_thread(struct mddev *mddev);
>>> extern void md_reload_sb(struct mddev *mddev, int raid_disk);
>>> extern void md_update_sb(struct mddev *mddev, int force);
Powered by blists - more mailing lists