summaryrefslogtreecommitdiff
path: root/super-intel.c
diff options
context:
space:
mode:
authorAdam Kwolek <adam.kwolek@intel.com>2011-03-08 16:10:35 +1100
committerNeilBrown <neilb@suse.de>2011-03-08 16:10:35 +1100
commit072b112dfb182c8e1f9c953b35c55e4c869dd15b (patch)
treef3e4112b63d653dff0182dec0bd1942360764332 /super-intel.c
parent20a40eca4b40068f6a45b9eab67320bd5de56f11 (diff)
imsm: FIX: Return blocks_per unit for general migration
For general migration, blocks per unit are required for all disks, not for per-member. Signed-off-by: Adam Kwolek <adam.kwolek@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'super-intel.c')
-rw-r--r--super-intel.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/super-intel.c b/super-intel.c
index 0091b271..26276f7e 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -1690,6 +1690,8 @@ static __u64 blocks_per_migr_unit(struct imsm_dev *dev)
migr_chunk = migr_strip_blocks_resync(dev);
disks = imsm_num_data_members(dev, 0);
blocks_per_unit = stripes_per_unit * migr_chunk * disks;
+ if (migr_type(dev) == MIGR_GEN_MIGR)
+ return blocks_per_unit;
stripe = __le32_to_cpu(map->blocks_per_strip) * disks;
segment = blocks_per_unit / stripe;
block_rel = blocks_per_unit - segment * stripe;