diff options
author | Adam Kwolek <adam.kwolek@intel.com> | 2012-02-07 15:03:51 +0100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2012-02-09 12:20:52 +1100 |
commit | e1742195ff3dba97929f81af6b7633481a23397a (patch) | |
tree | 845f0c63a707ccf5c94a4018af9152f0659ac2d3 | |
parent | 78340e26a54db960de238b511f5cdc74aebe4453 (diff) | |
download | mdadm-e1742195ff3dba97929f81af6b7633481a23397a.tar.gz |
imsm: FIX: Chunk size migration problem
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>
-rw-r--r-- | super-intel.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/super-intel.c b/super-intel.c index 19a2c84..f5762d8 100644 --- a/super-intel.c +++ b/super-intel.c @@ -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); |