From: NeilBrown Date: Fri, 6 Nov 2009 03:59:29 +0000 (+1100) Subject: md/raid5: make sure curr_sync_completes is uptodate when reshape starts X-Git-Tag: v2.6.31.7~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a7963564a8288a2c98d1c924d09ac0697b8f92c;p=thirdparty%2Fkernel%2Fstable.git md/raid5: make sure curr_sync_completes is uptodate when reshape starts commit 8dee7211467a56b7eb4e4359efb0aa4a72e1b6f3 upstream. This value is visible through sysfs and is used by mdadm when it manages a reshape (backing up data that is about to be rearranged). So it is important that it is always correct. Current it does not get updated properly when a reshape starts which can cause problems when assembling an array that is in the middle of being reshaped. This is suitable for 2.6.31.y stable kernels. Signed-off-by: NeilBrown Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index b8a2c5dc67ba7..c339c8fdcbd59 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -3790,6 +3790,8 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped sector_nr = conf->reshape_progress; sector_div(sector_nr, new_data_disks); if (sector_nr) { + mddev->curr_resync_completed = sector_nr; + sysfs_notify(&mddev->kobj, NULL, "sync_completed"); *skipped = 1; return sector_nr; }