From 0c5f205596cbeeefa1aa969700113a42e697084b Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 26 Jun 2006 00:27:50 -0700 Subject: [PATCH] --- yaml --- r: 30375 b: refs/heads/master c: 8838832830d2c6c28ae2db93188ae90652eb7fc2 h: refs/heads/master i: 30373: 9f9a60043cab3c670d7e6c782cff837e9db4a5fc 30371: 07c9893c63da55bf47ae2ee0c615893529695062 30367: d5aaf83c53fb3426dca2e97e4269eea60fc4af60 v: v3 --- [refs] | 2 +- trunk/drivers/md/raid10.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 6c0a9201ef9f..96e4c03bedcb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ce25c31bdd3b39266debd86a7732007e05983a67 +refs/heads/master: 8838832830d2c6c28ae2db93188ae90652eb7fc2 diff --git a/trunk/drivers/md/raid10.c b/trunk/drivers/md/raid10.c index 4db34edfd87f..7f636283a1ba 100644 --- a/trunk/drivers/md/raid10.c +++ b/trunk/drivers/md/raid10.c @@ -2060,7 +2060,13 @@ static int run(mddev_t *mddev) /* * Ok, everything is just fine now */ - size = conf->stride * conf->raid_disks; + if (conf->far_offset) { + size = mddev->size >> (conf->chunk_shift-1); + size *= conf->raid_disks; + size <<= conf->chunk_shift; + sector_div(size, conf->far_copies); + } else + size = conf->stride * conf->raid_disks; sector_div(size, conf->near_copies); mddev->array_size = size/2; mddev->resync_max_sectors = size;