Skip to content

Commit

Permalink
md: use resync_max_sectors for reshape as well as resync.
Browse files Browse the repository at this point in the history
Some resync type operations need to act on the address space of the
device, others on the address space of the array.

This only affects RAID10, so it sets resync_max_sectors to the array
size (it defaults to the device size), and that is currently used for
resync only.  However reshape of a RAID10 must be done against the
array size, not device size, so change code to use resync_max_sectors
for both the resync and the reshape cases.
This does not affect RAID5 or RAID1, just RAID10.

Signed-off-by: NeilBrown <neilb@suse.de>
  • Loading branch information
NeilBrown committed May 20, 2012
1 parent 1fdd6fc commit c804cde
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions drivers/md/md.c
Original file line number Diff line number Diff line change
Expand Up @@ -4425,7 +4425,8 @@ sync_completed_show(struct mddev *mddev, char *page)
if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery))
return sprintf(page, "none\n");

if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery))
if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ||
test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery))
max_sectors = mddev->resync_max_sectors;
else
max_sectors = mddev->dev_sectors;
Expand Down Expand Up @@ -6803,7 +6804,8 @@ static void status_resync(struct seq_file *seq, struct mddev * mddev)

resync = mddev->curr_resync - atomic_read(&mddev->recovery_active);

if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery))
if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery) ||
test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery))
max_sectors = mddev->resync_max_sectors;
else
max_sectors = mddev->dev_sectors;
Expand Down Expand Up @@ -7366,7 +7368,7 @@ void md_do_sync(struct mddev *mddev)
j = mddev->recovery_cp;

} else if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery))
max_sectors = mddev->dev_sectors;
max_sectors = mddev->resync_max_sectors;
else {
/* recovery follows the physical size of devices */
max_sectors = mddev->dev_sectors;
Expand Down

0 comments on commit c804cde

Please sign in to comment.