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>
This commit is contained in:
parent
e7bb5d23a9
commit
2998bc013c
12
super0.c
12
super0.c
|
@ -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)
|
||||
|
|
12
super1.c
12
super1.c
|
@ -308,10 +308,20 @@ static void brief_examine_super1(void *sbv)
|
|||
{
|
||||
struct mdp_superblock_1 *sb = sbv;
|
||||
int i;
|
||||
char *nm;
|
||||
|
||||
nm = strchr(sb->set_name, ':');
|
||||
if (nm)
|
||||
nm++;
|
||||
else if (sb->set_name[0])
|
||||
nm = sb->set_name;
|
||||
else
|
||||
nm = "??";
|
||||
|
||||
char *c=map_num(pers, __le32_to_cpu(sb->level));
|
||||
|
||||
printf("ARRAY /dev/?? level=%s metadata=1 num-devices=%d UUID=",
|
||||
printf("ARRAY /dev/md/%s level=%s metadata=1 num-devices=%d UUID=",
|
||||
nm,
|
||||
c?c:"-unknown-", sb->raid_disks);
|
||||
for (i=0; i<16; i++) {
|
||||
printf("%02x", sb->set_uuid[i]);
|
||||
|
|
Loading…
Reference in New Issue