summaryrefslogtreecommitdiffstats
path: root/drivers/md/bitmap.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-03-31 05:27:02 +0200
committerNeilBrown <neilb@suse.de>2009-03-31 05:27:02 +0200
commit355a43e641b948a7b755cb4c2466ec548d5b495f (patch)
treebed8f87adde74f054c6b822ffdbae74395e76710 /drivers/md/bitmap.c
parentmd: never clear bit from the write-intent bitmap when the array is degraded. (diff)
downloadlinux-355a43e641b948a7b755cb4c2466ec548d5b495f.tar.xz
linux-355a43e641b948a7b755cb4c2466ec548d5b495f.zip
md: write bitmap information to devices that are undergoing recovery.
When we add some spares to an array and start recovery, and we have a bitmap which is stored 'internally' on all devices, we call bitmap_write_all to make sure the bitmap is correct on the new device(s). However that doesn't work as write_sb_page only writes to 'In_sync' devices, and devices undergoing recovery are not 'In_sync' until recovery finishes. So extend write_sb_page (actually next_active_rdev) to include devices that are under recovery. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r--drivers/md/bitmap.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 2ef497d1848c..27f978dfe6a3 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -266,7 +266,6 @@ static mdk_rdev_t *next_active_rdev(mdk_rdev_t *rdev, mddev_t *mddev)
list_for_each_continue_rcu(pos, &mddev->disks) {
rdev = list_entry(pos, mdk_rdev_t, same_set);
if (rdev->raid_disk >= 0 &&
- test_bit(In_sync, &rdev->flags) &&
!test_bit(Faulty, &rdev->flags)) {
/* this is a usable devices */
atomic_inc(&rdev->nr_pending);