summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2008-09-18 16:12:28 +1000
committerNeilBrown <neilb@suse.de>2008-09-18 16:12:28 +1000
commit35ddc76dcbcb7ef5f1ca57e557bfa4c3cdf6a6eb (patch)
tree7469851707ce8fc23c438c10ce6a120d1f7fc5ad
parentff54de6e47163944185f231700e72d3122b58f4c (diff)
downloadmdadm-35ddc76dcbcb7ef5f1ca57e557bfa4c3cdf6a6eb.tar.gz
mdadm-35ddc76dcbcb7ef5f1ca57e557bfa4c3cdf6a6eb.tar.xz
mdadm-35ddc76dcbcb7ef5f1ca57e557bfa4c3cdf6a6eb.zip
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.
-rw-r--r--Detail.c12
-rw-r--r--super0.c13
-rw-r--r--super1.c6
3 files changed, 10 insertions, 21 deletions
diff --git a/Detail.c b/Detail.c
index ae00bb4..4647360 100644
--- a/Detail.c
+++ b/Detail.c
@@ -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;
}
diff --git a/super0.c b/super0.c
index 4f58954..24ea009 100644
--- a/super0.c
+++ b/super0.c
@@ -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,
diff --git a/super1.c b/super1.c
index e71b969..b7cd962 100644
--- a/super1.c
+++ b/super1.c
@@ -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