Make --brief even briefer.

Because ---examine --brief, or --detail --brief are
often used to create mdadm.conf, and because people don't want to
have to update their mdadm.conf unnecessarily, we don't want to
include information that might change.
And now that level changing is supported, that is almost everything
but UUID.

So move some more fields into the "Only print with --verbose" class.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2009-05-11 15:18:20 +10:00
parent 9652457eea
commit 061f2c6abd
7 changed files with 31 additions and 23 deletions

View File

@ -196,14 +196,16 @@ int Detail(char *dev, int brief, int export, int test, char *homehost)
if (brief) {
mdu_bitmap_file_t bmf;
if (array.raid_disks)
printf("ARRAY %s level=%s num-devices=%d", dev,
c?c:"-unknown-",
array.raid_disks );
else
printf("ARRAY %s level=container num-devices=%d",
dev, array.nr_disks);
printf("ARRAY %s", dev);
if (brief > 1) {
if (array.raid_disks)
printf("level=%s num-devices=%d",
c?c:"-unknown-",
array.raid_disks );
else
printf("level=container num-devices=%d",
array.nr_disks);
}
if (container) {
printf(" container=%s", container);
printf(" member=%s", member);

View File

@ -141,7 +141,7 @@ int Examine(mddev_dev_t devlist, int brief, int export, int scan,
for (ap=arrays; ap; ap=ap->next) {
char sep='=';
char *d;
ap->st->ss->brief_examine_super(ap->st);
ap->st->ss->brief_examine_super(ap->st, brief > 1);
if (ap->spares) printf(" spares=%d", ap->spares);
if (brief > 1) {
printf(" devices");

View File

@ -440,7 +440,7 @@ extern struct superswitch {
* device. ->load_super has been called.
*/
void (*examine_super)(struct supertype *st, char *homehost);
void (*brief_examine_super)(struct supertype *st);
void (*brief_examine_super)(struct supertype *st, int verbose);
void (*export_examine_super)(struct supertype *st);
/* Used to report details of an active array.

View File

@ -1162,7 +1162,7 @@ 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)
static void brief_examine_super_ddf(struct supertype *st, int verbose)
{
/* We just write a generic DDF ARRAY entry
*/

View File

@ -753,7 +753,7 @@ static void examine_super_imsm(struct supertype *st, char *homehost)
}
}
static void brief_examine_super_imsm(struct supertype *st)
static void brief_examine_super_imsm(struct supertype *st, int verbose)
{
/* We just write a generic IMSM ARRAY entry */
struct mdinfo info;

View File

@ -232,7 +232,7 @@ static void examine_super0(struct supertype *st, char *homehost)
}
}
static void brief_examine_super0(struct supertype *st)
static void brief_examine_super0(struct supertype *st, int verbose)
{
mdp_super_t *sb = st->sb;
char *c=map_num(pers, sb->level);
@ -240,14 +240,18 @@ static void brief_examine_super0(struct supertype *st)
sprintf(devname, "/dev/md%d", sb->md_minor);
printf("ARRAY %s level=%s num-devices=%d UUID=",
devname,
c?c:"-unknown-", sb->raid_disks);
if (verbose) {
printf("ARRAY %s level=%s num-devices=%d",
devname,
c?c:"-unknown-", sb->raid_disks);
} else
printf("ARRAY %s", devname);
if (sb->minor_version >= 90)
printf("%08x:%08x:%08x:%08x", sb->set_uuid0, sb->set_uuid1,
printf(" UUID=%08x:%08x:%08x:%08x", sb->set_uuid0, sb->set_uuid1,
sb->set_uuid2, sb->set_uuid3);
else
printf("%08x", sb->set_uuid0);
printf(" UUID=%08x", sb->set_uuid0);
printf("\n");
}

View File

@ -414,7 +414,7 @@ static void examine_super1(struct supertype *st, char *homehost)
}
static void brief_examine_super1(struct supertype *st)
static void brief_examine_super1(struct supertype *st, int verbose)
{
struct mdp_superblock_1 *sb = st->sb;
int i;
@ -430,9 +430,9 @@ static void brief_examine_super1(struct supertype *st)
else
nm = NULL;
printf("ARRAY%s%s level=%s ",
nm ? " /dev/md/":"", nm,
c?c:"-unknown-");
printf("ARRAY%s%s", nm ? " /dev/md/":"", nm);
if (verbose && c)
printf(" level=%s", c);
sb_offset = __le64_to_cpu(sb->super_offset);
if (sb_offset <= 4)
printf("metadata=1.1 ");
@ -440,7 +440,9 @@ static void brief_examine_super1(struct supertype *st)
printf("metadata=1.2 ");
else
printf("metadata=1.0 ");
printf("num-devices=%d UUID=", __le32_to_cpu(sb->raid_disks));
if (verbose)
printf("num-devices=%d ", __le32_to_cpu(sb->raid_disks));
printf("UUID=");
for (i=0; i<16; i++) {
if ((i&3)==0 && i != 0) printf(":");
printf("%02x", sb->set_uuid[i]);