]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
imsm: fix setting of device size for raid1
authorDan Williams <dan.j.williams@intel.com>
Mon, 8 Dec 2008 18:28:54 +0000 (11:28 -0700)
committerDan Williams <dan.j.williams@intel.com>
Mon, 8 Dec 2008 23:59:17 +0000 (16:59 -0700)
When chunksize is 0 in the raid1 case we need to use
info_to_blocks_per_member() to calculate the array size.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
super-intel.c

index 99419ffd5cc6cbc2acf0a16caa67df622963bd28..56775385e6da05c416e8f57463c75ebf60d7aa0e 100644 (file)
@@ -1816,9 +1816,12 @@ static int init_super_imsm_volume(struct supertype *st, mdu_array_info_t *info,
                return 0;
        }
        strncpy((char *) dev->volume, name, MAX_RAID_SERIAL_LEN);
-       array_blocks = calc_array_size(info->level, info->raid_disks,
-                                      info->layout, info->chunk_size,
-                                      info->size*2);
+       if (info->level == 1)
+               array_blocks = info_to_blocks_per_member(info);
+       else
+               array_blocks = calc_array_size(info->level, info->raid_disks,
+                                              info->layout, info->chunk_size,
+                                              info->size*2);
        dev->size_low = __cpu_to_le32((__u32) array_blocks);
        dev->size_high = __cpu_to_le32((__u32) (array_blocks >> 32));
        dev->status = __cpu_to_le32(0);