{
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,
else
printf("%08x", sb->set_uuid0);
printf("\n");
- put_md_name(nm);
}
static void detail_super0(void *sbv, char *homehost)
{
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]);