diff options
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/raid10.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 4db34edfd87f..7f636283a1ba 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
@@ -2060,7 +2060,13 @@ static int run(mddev_t *mddev) | |||
2060 | /* | 2060 | /* |
2061 | * Ok, everything is just fine now | 2061 | * Ok, everything is just fine now |
2062 | */ | 2062 | */ |
2063 | size = conf->stride * conf->raid_disks; | 2063 | if (conf->far_offset) { |
2064 | size = mddev->size >> (conf->chunk_shift-1); | ||
2065 | size *= conf->raid_disks; | ||
2066 | size <<= conf->chunk_shift; | ||
2067 | sector_div(size, conf->far_copies); | ||
2068 | } else | ||
2069 | size = conf->stride * conf->raid_disks; | ||
2064 | sector_div(size, conf->near_copies); | 2070 | sector_div(size, conf->near_copies); |
2065 | mddev->array_size = size/2; | 2071 | mddev->array_size = size/2; |
2066 | mddev->resync_max_sectors = size; | 2072 | mddev->resync_max_sectors = size; |