|
@@ -5542,7 +5542,8 @@ static sector_t reshape_request(struct mddev *mddev, sector_t sector_nr, int *sk
|
|
|
sector_nr += reshape_sectors;
|
|
sector_nr += reshape_sectors;
|
|
|
retn = reshape_sectors;
|
|
retn = reshape_sectors;
|
|
|
finish:
|
|
finish:
|
|
|
- if ((sector_nr - mddev->curr_resync_completed) * 2
|
|
|
|
|
|
|
+ if (mddev->curr_resync_completed > mddev->resync_max ||
|
|
|
|
|
+ (sector_nr - mddev->curr_resync_completed) * 2
|
|
|
>= mddev->resync_max - mddev->curr_resync_completed) {
|
|
>= mddev->resync_max - mddev->curr_resync_completed) {
|
|
|
/* Cannot proceed until we've updated the superblock... */
|
|
/* Cannot proceed until we've updated the superblock... */
|
|
|
wait_event(conf->wait_for_overlap,
|
|
wait_event(conf->wait_for_overlap,
|