From 81062a36abd28d2354036da398c2e090fa759198 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 18 May 2009 09:58:55 -0700 Subject: imsm: fix num_domains The 'num_domains' field simply identifies the number of mirrors. So it is 2 for a 2-disk raid1 or a 4-disk raid10. The orom does not currently support more than 2 mirrors, but a three disk raid1 for example would increase num_domains to 3. Signed-off-by: Dan Williams --- super-intel.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/super-intel.c b/super-intel.c index d7383fb..35c43f4 100644 --- a/super-intel.c +++ b/super-intel.c @@ -2405,13 +2405,16 @@ static int init_super_imsm_volume(struct supertype *st, mdu_array_info_t *info, "in a raid1 volume\n"); return 0; } + + map->raid_level = info->level; if (info->level == 10) { map->raid_level = 1; map->num_domains = info->raid_disks / 2; - } else { - map->raid_level = info->level; + } else if (info->level == 1) + map->num_domains = info->raid_disks; + else map->num_domains = 1; - } + num_data_stripes = info_to_num_data_stripes(info, map->num_domains); map->num_data_stripes = __cpu_to_le32(num_data_stripes); -- cgit From 1124b3cf29dad544e8a5aa01e5f9e94e7be1765a Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 18 May 2009 10:02:58 -0700 Subject: imsm: kill "auto=" in brief_examine_super_imsm The auto parameter is obsolete after kernel version 2.6.28 as all arrays are partitionable via block device extended minor support. Environments that requre the mdp style of array can always edit the configuration file to specify auto=mdp. Signed-off-by: Dan Williams --- super-intel.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/super-intel.c b/super-intel.c index 35c43f4..73fe5fa 100644 --- a/super-intel.c +++ b/super-intel.c @@ -768,15 +768,14 @@ static void brief_examine_super_imsm(struct supertype *st, int verbose) getinfo_super_imsm(st, &info); fname_from_uuid(st, &info, nbuf, ':'); - printf("ARRAY metadata=imsm auto=md UUID=%s\n", nbuf + 5); + printf("ARRAY metadata=imsm UUID=%s\n", nbuf + 5); for (i = 0; i < super->anchor->num_raid_devs; i++) { struct imsm_dev *dev = get_imsm_dev(super, i); super->current_vol = i; getinfo_super_imsm(st, &info); fname_from_uuid(st, &info, nbuf1, ':'); - printf("ARRAY /dev/md/%.16s container=%s\n" - " member=%d auto=mdp UUID=%s\n", + printf("ARRAY /dev/md/%.16s container=%s member=%d UUID=%s\n", dev->volume, nbuf + 5, i, nbuf1 + 5); } } -- cgit