diff options
author | Neil Brown <neilb@suse.de> | 2006-05-26 02:29:12 +0000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2006-05-26 02:29:12 +0000 |
commit | 2998bc013c2f4a6cc576efab9c0492eb889c8853 (patch) | |
tree | f00a3926f097612099930cb96ef7f0a2048a259d /super0.c | |
parent | e7bb5d23a9b29ae6f316fe3ce8970301e1bc0d4d (diff) | |
download | mdadm-2998bc013c2f4a6cc576efab9c0492eb889c8853.tar.gz mdadm-2998bc013c2f4a6cc576efab9c0492eb889c8853.tar.xz mdadm-2998bc013c2f4a6cc576efab9c0492eb889c8853.zip |
Improve names reported by --examine --brief
Instead of depending (too much) on what is in /dev,
we make names based on the content of the superblock.
Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'super0.c')
-rw-r--r-- | super0.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -227,10 +227,17 @@ static void brief_examine_super0(void *sbv) { mdp_super_t *sb = sbv; char *c=map_num(pers, sb->level); - char *nm; + char devname[20]; + struct stat stb; + + sprintf(devname, "/dev/md%d", sb->md_minor); + if (stat(devname, &stb) != 0) { + /* /dev/mdX doesn't exist, so use /dev/md/X */ + sprintf(devname, "/dev/md/%d", sb->md_minor); + } printf("ARRAY %s level=%s num-devices=%d UUID=", - nm = get_md_name(sb->md_minor), + devname, c?c:"-unknown-", sb->raid_disks); if (sb->minor_version >= 90) printf("%08x:%08x:%08x:%08x", sb->set_uuid0, sb->set_uuid1, @@ -238,7 +245,6 @@ static void brief_examine_super0(void *sbv) else printf("%08x", sb->set_uuid0); printf("\n"); - put_md_name(nm); } static void detail_super0(void *sbv, char *homehost) |