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 >