]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Examine: add examine_export for ddf and avoid crashes.
authorNeilBrown <neilb@suse.de>
Mon, 9 Mar 2009 03:10:52 +0000 (14:10 +1100)
committerNeilBrown <neilb@suse.de>
Mon, 9 Mar 2009 03:10:52 +0000 (14:10 +1100)
If the personality doesn't provide export_examine_super, don't crash.

Signed-off-by: NeilBrown <neilb@suse.de>
Examine.c
super-ddf.c

index d213664f965eaa1b14d4666ff8e5bf0b6caa4275..3827e7ed08086bc740799524f82701bb49de7bd6 100644 (file)
--- a/Examine.c
+++ b/Examine.c
@@ -128,7 +128,8 @@ int Examine(mddev_dev_t devlist, int brief, int export, int scan,
                        d = dl_strdup(devlist->devname);
                        dl_add(ap->devs, d);
                } else if (export) {
-                       st->ss->export_examine_super(st);
+                       if (st->ss->export_examine_super)
+                               st->ss->export_examine_super(st);
                } else {
                        printf("%s:\n",devlist->devname);
                        st->ss->examine_super(st, homehost);
index 7ca79fb778a7b9197ef69937ce086ec30f4c292a..8725eabddf5c5def8c9509c8d3101f7cfbf748d5 100644 (file)
@@ -1189,6 +1189,18 @@ static void brief_examine_super_ddf(struct supertype *st)
        }
 }
 
+static void export_examine_super_ddf(struct supertype *st)
+{
+       struct mdinfo info;
+       char nbuf[64];
+       getinfo_super_ddf(st, &info);
+       fname_from_uuid(st, &info, nbuf, ':');
+       printf("MD_METADATA=ddf\n");
+       printf("MD_LEVEL=container\n");
+       printf("MD_UUID=%s\n", nbuf+5);
+}
+       
+
 static void detail_super_ddf(struct supertype *st, char *homehost)
 {
        /* FIXME later
@@ -3563,6 +3575,7 @@ struct superswitch super_ddf = {
 #ifndef        MDASSEMBLE
        .examine_super  = examine_super_ddf,
        .brief_examine_super = brief_examine_super_ddf,
+       .export_examine_super = export_examine_super_ddf,
        .detail_super   = detail_super_ddf,
        .brief_detail_super = brief_detail_super_ddf,
        .validate_geometry = validate_geometry_ddf,