md/raid5: make sure curr_sync_completes is uptodate when reshape starts
authorNeilBrown <neilb@suse.de>
Fri, 6 Nov 2009 03:59:29 +0000 (14:59 +1100)
committerNeilBrown <neilb@suse.de>
Fri, 6 Nov 2009 03:59:29 +0000 (14:59 +1100)
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.

Cc: stable@kernel.org
Signed-off-by: NeilBrown <neilb@suse.de>
drivers/md/raid5.c

index 81abefc..dcce204 100644 (file)
@@ -4049,6 +4049,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;
                }