Use common code to report MD_UUID for --detail --export

As we need to be able to extract a UUID from any superblock
for matching, use that as the MD_UUID as it will probably be
used for array matching too.
This commit is contained in:
NeilBrown 2008-09-18 16:12:28 +10:00
parent ff54de6e47
commit 35ddc76dcb
3 changed files with 10 additions and 21 deletions

View File

@ -169,9 +169,17 @@ int Detail(char *dev, int brief, int export, int test, char *homehost)
printf("MD_METADATA=%02d.%02d\n",
array.major_version, array.minor_version);
}
if (st && st->sb) {
struct mdinfo info;
char nbuf[64];
st->ss->getinfo_super(st, &info);
fname_from_uuid(st, &info, nbuf, ':');
printf("MD_UUID=%s\n", nbuf+5);
if (st && st->sb)
st->ss->export_detail_super(st);
if (st->ss->export_detail_super)
st->ss->export_detail_super(st);
}
goto out;
}

View File

@ -301,18 +301,6 @@ static void brief_detail_super0(struct supertype *st)
else
printf("%08x", sb->set_uuid0);
}
static void export_detail_super0(struct supertype *st)
{
mdp_super_t *sb = st->sb;
printf("MD_UUID=");
if (sb->minor_version >= 90)
printf("%08x:%08x:%08x:%08x", sb->set_uuid0, sb->set_uuid1,
sb->set_uuid2, sb->set_uuid3);
else
printf("%08x", sb->set_uuid0);
printf("\n");
}
#endif
static int match_home0(struct supertype *st, char *homehost)
@ -1091,7 +1079,6 @@ struct superswitch super0 = {
.export_examine_super = export_examine_super0,
.detail_super = detail_super0,
.brief_detail_super = brief_detail_super0,
.export_detail_super = export_detail_super0,
.write_init_super = write_init_super0,
.validate_geometry = validate_geometry0,
.add_to_super = add_to_super0,

View File

@ -456,12 +456,6 @@ static void export_detail_super1(struct supertype *st)
}
if (len)
printf("MD_NAME=%.*s\n", len, sb->set_name);
printf("MD_UUID=");
for (i=0; i<16; i++) {
if ((i&3)==0 && i != 0) printf(":");
printf("%02x", sb->set_uuid[i]);
}
printf("\n");
}
#endif