md/raid5: fix bug in reshape code when chunk_size decreases.
authorNeilBrown <neilb@suse.de>
Tue, 9 Jun 2009 06:32:22 +0000 (16:32 +1000)
committerNeilBrown <neilb@suse.de>
Tue, 9 Jun 2009 06:32:22 +0000 (16:32 +1000)
Now that we support changing the chunksize, we calculate
"reshape_sectors" to be the max of number of sectors in old
and new chunk size.
However there is one please where we still use 'chunksize'
rather than 'reshape_sectors'.
This causes a reshape that reduces the size of chunks to freeze.

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

index 59f2ec0..bb37fb1 100644 (file)
@@ -3916,7 +3916,7 @@ static sector_t reshape_request(mddev_t *mddev, sector_t sector_nr, int *skipped
                raid5_compute_sector(conf, stripe_addr*(new_data_disks),
                                     1, &dd_idx, NULL);
        last_sector =
-               raid5_compute_sector(conf, ((stripe_addr+conf->chunk_size/512)
+               raid5_compute_sector(conf, ((stripe_addr+reshape_sectors)
                                            *(new_data_disks) - 1),
                                     1, &dd_idx, NULL);
        if (last_sector >= mddev->dev_sectors)