[PATCH -next 00/13] md: make rdev addition and removal independent from daemon thread

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Yu Kuai <yukuai3@xxxxxxxxxx>

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@xxxxxxxxxxxxxxx/
[2] https://lore.kernel.org/all/20230628012931.88911-2-yukuai1@xxxxxxxxxxxxxxx/

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




[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux