From: Adam Kwolek Date: Tue, 8 Mar 2011 05:10:35 +0000 (+1100) Subject: imsm: FIX: Return blocks_per unit for general migration X-Git-Tag: mdadm-3.2.1~89 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=072b112dfb182c8e1f9c953b35c55e4c869dd15b;p=thirdparty%2Fmdadm.git 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 Signed-off-by: NeilBrown --- 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;