From 1e7bc0ed08ce6781a78b886d22be64518ba921c5 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 28 Oct 2008 10:55:31 -0700 Subject: [PATCH] imsm: include members in ->brief_examine A prerquisite for getting imsm arrays assembled by mdadm -As. --- super-intel.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/super-intel.c b/super-intel.c index 68ecbe4a..29085a5b 100644 --- a/super-intel.c +++ b/super-intel.c @@ -503,7 +503,7 @@ static void print_imsm_dev(struct imsm_dev *dev, int index) __u32 ord; printf("\n"); - printf("[%s]:\n", dev->volume); + printf("[%.16s]:\n", dev->volume); printf(" RAID Level : %d\n", get_imsm_raid_level(map)); printf(" Members : %d\n", map->num_members); for (slot = 0; slot < map->num_members; slot++) @@ -622,10 +622,24 @@ static void brief_examine_super_imsm(struct supertype *st) /* We just write a generic IMSM ARRAY entry */ struct mdinfo info; char nbuf[64]; + struct intel_super *super = st->sb; + int i; + + if (!super->anchor->num_raid_devs) + return; getinfo_super_imsm(st, &info); fname_from_uuid(st, &info, nbuf,'-'); printf("ARRAY /dev/imsm metadata=imsm auto=md 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, nbuf,'-'); + printf("ARRAY /dev/md/%.16s container=/dev/imsm member=%d auto=mdp UUID=%s\n", + dev->volume, i, nbuf + 5); + } } static void detail_super_imsm(struct supertype *st, char *homehost) -- 2.39.2