Examine: add examine_export for ddf and avoid crashes.
If the personality doesn't provide export_examine_super, don't crash. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
e5a2a3cf8c
commit
bceedeec55
|
@ -128,7 +128,8 @@ int Examine(mddev_dev_t devlist, int brief, int export, int scan,
|
||||||
d = dl_strdup(devlist->devname);
|
d = dl_strdup(devlist->devname);
|
||||||
dl_add(ap->devs, d);
|
dl_add(ap->devs, d);
|
||||||
} else if (export) {
|
} else if (export) {
|
||||||
st->ss->export_examine_super(st);
|
if (st->ss->export_examine_super)
|
||||||
|
st->ss->export_examine_super(st);
|
||||||
} else {
|
} else {
|
||||||
printf("%s:\n",devlist->devname);
|
printf("%s:\n",devlist->devname);
|
||||||
st->ss->examine_super(st, homehost);
|
st->ss->examine_super(st, homehost);
|
||||||
|
|
13
super-ddf.c
13
super-ddf.c
|
@ -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)
|
static void detail_super_ddf(struct supertype *st, char *homehost)
|
||||||
{
|
{
|
||||||
/* FIXME later
|
/* FIXME later
|
||||||
|
@ -3563,6 +3575,7 @@ struct superswitch super_ddf = {
|
||||||
#ifndef MDASSEMBLE
|
#ifndef MDASSEMBLE
|
||||||
.examine_super = examine_super_ddf,
|
.examine_super = examine_super_ddf,
|
||||||
.brief_examine_super = brief_examine_super_ddf,
|
.brief_examine_super = brief_examine_super_ddf,
|
||||||
|
.export_examine_super = export_examine_super_ddf,
|
||||||
.detail_super = detail_super_ddf,
|
.detail_super = detail_super_ddf,
|
||||||
.brief_detail_super = brief_detail_super_ddf,
|
.brief_detail_super = brief_detail_super_ddf,
|
||||||
.validate_geometry = validate_geometry_ddf,
|
.validate_geometry = validate_geometry_ddf,
|
||||||
|
|
Loading…
Reference in New Issue