]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
imsm: FIX: Chunk size migration problem
authorAdam Kwolek <adam.kwolek@intel.com>
Tue, 7 Feb 2012 14:03:51 +0000 (15:03 +0100)
committerNeilBrown <neilb@suse.de>
Thu, 9 Feb 2012 01:20:52 +0000 (12:20 +1100)
When chunk size migration occurs (e.g. 128k->4k) first checkpoint cannot
be set in md due to too small step. Correct migration record initialization
to allow whole copy area usage and increase migration checkpoint step.

Signed-off-by: Adam Kwolek <adam.kwolek@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
super-intel.c

index 19a2c848687bf4056e8ce6e39af688291c61fa21..f5762d8eac63a4c6357c5ca14c18f823705d7e08 100644 (file)
@@ -8913,7 +8913,8 @@ void init_migr_record_imsm(struct supertype *st, struct imsm_dev *dev,
 
        migr_rec->dest_depth_per_unit = GEN_MIGR_AREA_SIZE /
                max(map_dest->blocks_per_strip, map_src->blocks_per_strip);
-       migr_rec->dest_depth_per_unit *= map_dest->blocks_per_strip;
+       migr_rec->dest_depth_per_unit *=
+               max(map_dest->blocks_per_strip, map_src->blocks_per_strip);
        new_data_disks = imsm_num_data_members(dev, MAP_0);
        migr_rec->blocks_per_unit =
                __cpu_to_le32(migr_rec->dest_depth_per_unit * new_data_disks);