Răsfoiți Sursa

md/raid5: make sure a reshape restarts at the correct address.

This "if" don't allow for the possibility that the number of devices
doesn't change, and so sector_nr isn't set correctly in that case.
So change '>' to '>='.

Signed-off-by: NeilBrown <neilb@suse.de>
NeilBrown 16 ani în urmă
părinte
comite
a639755cf8
1 a modificat fișierele cu 1 adăugiri și 1 ștergeri
  1. 1 1
      drivers/md/raid5.c

+ 1 - 1
drivers/md/raid5.c

@@ -3785,7 +3785,7 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
 		    conf->reshape_progress < raid5_size(mddev, 0, 0)) {
 		    conf->reshape_progress < raid5_size(mddev, 0, 0)) {
 			sector_nr = raid5_size(mddev, 0, 0)
 			sector_nr = raid5_size(mddev, 0, 0)
 				- conf->reshape_progress;
 				- conf->reshape_progress;
-		} else if (mddev->delta_disks > 0 &&
+		} else if (mddev->delta_disks >= 0 &&
 			   conf->reshape_progress > 0)
 			   conf->reshape_progress > 0)
 			sector_nr = conf->reshape_progress;
 			sector_nr = conf->reshape_progress;
 		sector_div(sector_nr, new_data_disks);
 		sector_div(sector_nr, new_data_disks);