diff options
author | NeilBrown <neilb@suse.de> | 2009-11-06 04:59:29 +0100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2009-11-06 04:59:29 +0100 |
commit | 8dee7211467a56b7eb4e4359efb0aa4a72e1b6f3 (patch) | |
tree | 4ddcb170bd131adcc022477ef96716fba5c1ab07 /drivers/md/raid5.c | |
parent | md: don't clear endpoint for resync when resync is interrupted. (diff) | |
download | linux-8dee7211467a56b7eb4e4359efb0aa4a72e1b6f3.tar.xz linux-8dee7211467a56b7eb4e4359efb0aa4a72e1b6f3.zip |
md/raid5: make sure curr_sync_completes is uptodate when reshape starts
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>
Diffstat (limited to '')
-rw-r--r-- | drivers/md/raid5.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 81abefc172d9..dcce204b6c73 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -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; } |