md/raid5: correctly update sync_completed when we reach max_resync
authorNeilBrown <neilb@suse.de>
Wed, 17 Jun 2009 23:14:12 +0000 (09:14 +1000)
committerNeilBrown <neilb@suse.de>
Wed, 17 Jun 2009 23:14:12 +0000 (09:14 +1000)
At the end of reshape_request we update cyrr_resync_completed
if we are about to pause due to reaching resync_max.
However we update it to the wrong value.  We need to add the
"reshape_sectors" that have just been reshaped.

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

index 59e29c2983cb1faead96ecf0da91bf5fa76e99f6..f9f991e6e1389ffc90860571edf701ca13a6f292 100644 (file)
@@ -3946,7 +3946,7 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
                wait_event(conf->wait_for_overlap,
                           atomic_read(&conf->reshape_stripes) == 0);
                mddev->reshape_position = conf->reshape_progress;
-               mddev->curr_resync_completed = mddev->curr_resync;
+               mddev->curr_resync_completed = mddev->curr_resync + reshape_sectors;
                conf->reshape_checkpoint = jiffies;
                set_bit(MD_CHANGE_DEVS, &mddev->flags);
                md_wakeup_thread(mddev->thread);