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:
NeilBrown 2009-08-07 14:17:40 +10:00
parent 823f06865e
commit 4737ae25de
4 changed files with 34 additions and 4 deletions

View File

@ -145,6 +145,8 @@ int Examine(mddev_dev_t devlist, int brief, int export, int scan,
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);
/* FIXME free ap */
if (ap->spares || brief > 1)

View File

@ -436,6 +436,7 @@ extern struct superswitch {
*/
void (*examine_super)(struct supertype *st, char *homehost);
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);
/* Used to report details of an active array.

View File

@ -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 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
*/
@ -1203,7 +1215,6 @@ static void brief_examine_super_ddf(struct supertype *st, int verbose)
printf("ARRAY container=%s member=%d UUID=%s\n",
nbuf+5, i, nbuf1+5);
}
printf("ARRAY metadata=ddf UUID=%s\n", nbuf + 5);
}
static void export_examine_super_ddf(struct supertype *st)
@ -3597,6 +3608,7 @@ struct superswitch super_ddf = {
#ifndef MDASSEMBLE
.examine_super = examine_super_ddf,
.brief_examine_super = brief_examine_super_ddf,
.brief_examine_subarrays = brief_examine_subarrays_ddf,
.export_examine_super = export_examine_super_ddf,
.detail_super = detail_super_ddf,
.brief_detail_super = brief_detail_super_ddf,

View File

@ -761,15 +761,30 @@ static void brief_examine_super_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) {
printf("ARRAY metadata=imsm\n");
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);
fname_from_uuid(st, &info, nbuf, ':');
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",
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)
@ -4554,6 +4568,7 @@ struct superswitch super_imsm = {
#ifndef MDASSEMBLE
.examine_super = examine_super_imsm,
.brief_examine_super = brief_examine_super_imsm,
.brief_examine_subarrays = brief_examine_subarrays_imsm,
.export_examine_super = export_examine_super_imsm,
.detail_super = detail_super_imsm,
.brief_detail_super = brief_detail_super_imsm,