Messages in this thread | | | From | Yu Kuai <> | Subject | [PATCH -next 00/13] md: make rdev addition and removal independent from daemon thread | Date | Thu, 3 Aug 2023 21:24:13 +0800 |
| |
From: Yu Kuai <yukuai3@huawei.com>
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.
patch 1-11 are cleanup and refactor patches, I think they make related code much easier to read;
More patchset on the way!
[1] https://lore.kernel.org/all/20230621165110.1498313-1-yukuai1@huaweicloud.com/ [2] https://lore.kernel.org/all/20230628012931.88911-2-yukuai1@huaweicloud.com/
Yu Kuai (13): md: remove rdev flag 'RemoveSynchronized' 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: factor out a helper hot_remove_rdev() from remove_and_add_spares() md: factor out a helper hot_add_rdev() from remove_and_add_spares() md: factor out a helper remove_rdev() from state_store() md: convert to use hot_remove_rdev() to hot remove one rdev md: convert to use hot_add_rdev() to hot add one rdev md: cleanup remove_and_add_spares() md: use separate work_struct for md_start_sync() md: delay choosing sync direction to md_start_sync() md: delay remove_and_add_spares() for read only array to md_start_sync()
drivers/md/md-multipath.c | 15 +- drivers/md/md.c | 413 +++++++++++++++++++++----------------- drivers/md/md.h | 10 +- drivers/md/raid1.c | 15 +- drivers/md/raid10.c | 15 +- drivers/md/raid5.c | 15 +- 6 files changed, 262 insertions(+), 221 deletions(-)
-- 2.39.2
| |