Exmaine/brief: put member arrays after container arrays.
A previous patch moved move the '--examine --brief' reporting of member arrays to before their containers. This breaks "mdadm -As" assembly. So put them back, but still fix the problem addressed by previous patch. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
823f06865e
commit
4737ae25de
|
@ -145,6 +145,8 @@ int Examine(mddev_dev_t devlist, int brief, int export, int scan,
|
||||||
sep=',';
|
sep=',';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (ap->st->ss->brief_examine_subarrays)
|
||||||
|
ap->st->ss->brief_examine_subarrays(ap->st, brief > 1);
|
||||||
ap->st->ss->free_super(ap->st);
|
ap->st->ss->free_super(ap->st);
|
||||||
/* FIXME free ap */
|
/* FIXME free ap */
|
||||||
if (ap->spares || brief > 1)
|
if (ap->spares || brief > 1)
|
||||||
|
|
1
mdadm.h
1
mdadm.h
|
@ -436,6 +436,7 @@ extern struct superswitch {
|
||||||
*/
|
*/
|
||||||
void (*examine_super)(struct supertype *st, char *homehost);
|
void (*examine_super)(struct supertype *st, char *homehost);
|
||||||
void (*brief_examine_super)(struct supertype *st, int verbose);
|
void (*brief_examine_super)(struct supertype *st, int verbose);
|
||||||
|
void (*brief_examine_subarrays)(struct supertype *st, int verbose);
|
||||||
void (*export_examine_super)(struct supertype *st);
|
void (*export_examine_super)(struct supertype *st);
|
||||||
|
|
||||||
/* Used to report details of an active array.
|
/* Used to report details of an active array.
|
||||||
|
|
14
super-ddf.c
14
super-ddf.c
|
@ -1180,6 +1180,18 @@ static void getinfo_super_ddf(struct supertype *st, struct mdinfo *info);
|
||||||
static void uuid_from_super_ddf(struct supertype *st, int uuid[4]);
|
static void uuid_from_super_ddf(struct supertype *st, int uuid[4]);
|
||||||
|
|
||||||
static void brief_examine_super_ddf(struct supertype *st, int verbose)
|
static void brief_examine_super_ddf(struct supertype *st, int verbose)
|
||||||
|
{
|
||||||
|
/* We just write a generic DDF ARRAY entry
|
||||||
|
*/
|
||||||
|
struct mdinfo info;
|
||||||
|
char nbuf[64];
|
||||||
|
getinfo_super_ddf(st, &info);
|
||||||
|
fname_from_uuid(st, &info, nbuf, ':');
|
||||||
|
|
||||||
|
printf("ARRAY metadata=ddf UUID=%s\n", nbuf + 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void brief_examine_subarrays_ddf(struct supertype *st, int verbose)
|
||||||
{
|
{
|
||||||
/* We just write a generic DDF ARRAY entry
|
/* We just write a generic DDF ARRAY entry
|
||||||
*/
|
*/
|
||||||
|
@ -1203,7 +1215,6 @@ static void brief_examine_super_ddf(struct supertype *st, int verbose)
|
||||||
printf("ARRAY container=%s member=%d UUID=%s\n",
|
printf("ARRAY container=%s member=%d UUID=%s\n",
|
||||||
nbuf+5, i, nbuf1+5);
|
nbuf+5, i, nbuf1+5);
|
||||||
}
|
}
|
||||||
printf("ARRAY metadata=ddf UUID=%s\n", nbuf + 5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void export_examine_super_ddf(struct supertype *st)
|
static void export_examine_super_ddf(struct supertype *st)
|
||||||
|
@ -3597,6 +3608,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,
|
||||||
|
.brief_examine_subarrays = brief_examine_subarrays_ddf,
|
||||||
.export_examine_super = export_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,
|
||||||
|
|
|
@ -761,15 +761,30 @@ static void brief_examine_super_imsm(struct supertype *st, int verbose)
|
||||||
/* We just write a generic IMSM ARRAY entry */
|
/* We just write a generic IMSM ARRAY entry */
|
||||||
struct mdinfo info;
|
struct mdinfo info;
|
||||||
char nbuf[64];
|
char nbuf[64];
|
||||||
char nbuf1[64];
|
|
||||||
struct intel_super *super = st->sb;
|
struct intel_super *super = st->sb;
|
||||||
int i;
|
|
||||||
|
|
||||||
if (!super->anchor->num_raid_devs) {
|
if (!super->anchor->num_raid_devs) {
|
||||||
printf("ARRAY metadata=imsm\n");
|
printf("ARRAY metadata=imsm\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getinfo_super_imsm(st, &info);
|
||||||
|
fname_from_uuid(st, &info, nbuf, ':');
|
||||||
|
printf("ARRAY metadata=imsm UUID=%s\n", nbuf + 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void brief_examine_subarrays_imsm(struct supertype *st, int verbose)
|
||||||
|
{
|
||||||
|
/* We just write a generic IMSM ARRAY entry */
|
||||||
|
struct mdinfo info;
|
||||||
|
char nbuf[64];
|
||||||
|
char nbuf1[64];
|
||||||
|
struct intel_super *super = st->sb;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (!super->anchor->num_raid_devs)
|
||||||
|
return;
|
||||||
|
|
||||||
getinfo_super_imsm(st, &info);
|
getinfo_super_imsm(st, &info);
|
||||||
fname_from_uuid(st, &info, nbuf, ':');
|
fname_from_uuid(st, &info, nbuf, ':');
|
||||||
for (i = 0; i < super->anchor->num_raid_devs; i++) {
|
for (i = 0; i < super->anchor->num_raid_devs; i++) {
|
||||||
|
@ -781,7 +796,6 @@ static void brief_examine_super_imsm(struct supertype *st, int verbose)
|
||||||
printf("ARRAY /dev/md/%.16s container=%s member=%d UUID=%s\n",
|
printf("ARRAY /dev/md/%.16s container=%s member=%d UUID=%s\n",
|
||||||
dev->volume, nbuf + 5, i, nbuf1 + 5);
|
dev->volume, nbuf + 5, i, nbuf1 + 5);
|
||||||
}
|
}
|
||||||
printf("ARRAY metadata=imsm UUID=%s\n", nbuf + 5);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void export_examine_super_imsm(struct supertype *st)
|
static void export_examine_super_imsm(struct supertype *st)
|
||||||
|
@ -4554,6 +4568,7 @@ struct superswitch super_imsm = {
|
||||||
#ifndef MDASSEMBLE
|
#ifndef MDASSEMBLE
|
||||||
.examine_super = examine_super_imsm,
|
.examine_super = examine_super_imsm,
|
||||||
.brief_examine_super = brief_examine_super_imsm,
|
.brief_examine_super = brief_examine_super_imsm,
|
||||||
|
.brief_examine_subarrays = brief_examine_subarrays_imsm,
|
||||||
.export_examine_super = export_examine_super_imsm,
|
.export_examine_super = export_examine_super_imsm,
|
||||||
.detail_super = detail_super_imsm,
|
.detail_super = detail_super_imsm,
|
||||||
.brief_detail_super = brief_detail_super_imsm,
|
.brief_detail_super = brief_detail_super_imsm,
|
||||||
|
|
Loading…
Reference in New Issue