Re: [PATCH -next v4 0/7] md: make rdev addition and removal independent from daemon thread

From: Song Liu
Date: Fri Aug 25 2023 - 02:41:16 EST


On Thu, Aug 24, 2023 at 8:20 PM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote:
>
> From: Yu Kuai <yukuai3@xxxxxxxxxx>
>
> Changes in v4:
> - add some review tag;
> - add comments to make code more readadble for patch 4,6;
> - rework patch 7 a litter;

Applied v4 to md-next. But this set won't go into 6.6.

Thanks,
Song

>
> Changes in v3:
> - rename md_choose_sync_direction() to md_choose_sync_action() in patch 2;
> - fix an error in patch 3;
> - add flush_work(&mddev->sync_work) while change read-only array to
> read-write;
>
> Changes in v2:
> - remove patch 1 from v1 and some related patches, those patches will
> be sent later when rcu protection for rdev is removed.
> - add patch 2.
>
> This is the third patchset to do some preparatory work to synchronize
> io with array reconfiguration.
>
> 1) The first patchset refactor 'active_io', make sure that mddev_suspend()
> will wait for io to be done. [1]
>
> 2) The second patchset remove 'quiesce' callback from mddev_suspend(), so
> that mddev_suspend() doesn't rely on 'quiesce' callback is registered,
> and can be used for all personalites; [2]
>
> 3) This patchset make array reconfiguration independent from daemon thread,
> and synchronize it with io will be much easier because io may rely on
> daemon thread to be done.
>
> More patchset on the way!
>
> Yu Kuai (7):
> md: use separate work_struct for md_start_sync()
> md: factor out a helper to choose sync action from md_check_recovery()
> md: delay choosing sync action to md_start_sync()
> md: factor out a helper rdev_removeable() from remove_and_add_spares()
> md: factor out a helper rdev_is_spare() from remove_and_add_spares()
> md: factor out a helper rdev_addable() from remove_and_add_spares()
> md: delay remove_and_add_spares() for read only array to
> md_start_sync()
>
> drivers/md/md.c | 308 +++++++++++++++++++++++++++++++++---------------
> drivers/md/md.h | 5 +-
> 2 files changed, 218 insertions(+), 95 deletions(-)
>
> --
> 2.39.2
>