From: NeilBrown Date: Tue, 31 Mar 2009 03:27:02 +0000 (+1100) Subject: md: write bitmap information to devices that are undergoing recovery. X-Git-Tag: MMI-PSA29.97-13-9~28809^2~49 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=355a43e641b948a7b755cb4c2466ec548d5b495f;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git 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 --- 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);