]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
simplify calculating array_blocks
authorCzarnowska, Anna <anna.czarnowska@intel.com>
Mon, 2 Apr 2012 00:16:04 +0000 (10:16 +1000)
committerNeilBrown <neilb@suse.de>
Mon, 2 Apr 2012 00:16:04 +0000 (10:16 +1000)
no point calling info_to_blocks_per_member when it just returns size*2 for level==1
calc_array_size can be used for all levels

Signed-off-by: Anna Czarnowska <anna.czarnowska@intel.com>
Signed-off-by: NeilBrown <neilb@suse.de>
super-intel.c
util.c

index 480b37932e44438cce122971df69520bea56058c..642ca268b627c4656c567888ebb42de8fab851a6 100644 (file)
@@ -4623,10 +4623,7 @@ static int init_super_imsm_volume(struct supertype *st, mdu_array_info_t *info,
        }
 
        strncpy((char *) dev->volume, name, MAX_RAID_SERIAL_LEN);
-       if (info->level == 1)
-               array_blocks = info_to_blocks_per_member(info, size);
-       else
-               array_blocks = calc_array_size(info->level, info->raid_disks,
+       array_blocks = calc_array_size(info->level, info->raid_disks,
                                               info->layout, info->chunk_size,
                                               size * 2);
        /* round array size down to closest MB */
diff --git a/util.c b/util.c
index 7abbff7517750ca71e3d979c38a3364a9b20793e..d32e6506492fa980c4dc36f82b628f6943413752 100644 (file)
--- a/util.c
+++ b/util.c
@@ -711,6 +711,8 @@ void print_r10_layout(int layout)
 unsigned long long calc_array_size(int level, int raid_disks, int layout,
                                   int chunksize, unsigned long long devsize)
 {
+       if (level == 1)
+               return devsize;
        devsize &= ~(unsigned long long)((chunksize>>9)-1);
        return get_data_disks(level, layout, raid_disks) * devsize;
 }