NeilBrown: Exmaine/brief: put member arrays after container arrays.
Martin F. Krafft
madduck at alioth.debian.org
Tue Oct 27 19:45:20 UTC 2009
Module: mdadm
Branch: build
Commit: 4737ae25dec3b6b703f8f60f351e2d6d7b527ac1
URL: http://git.debian.org/?p=pkg-mdadm/mdadm.git;a=commit;h=4737ae25dec3b6b703f8f60f351e2d6d7b527ac1
Author: NeilBrown <neilb at suse.de>
Date: Fri Aug 7 14:17:40 2009 +1000
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 at suse.de>
---
Examine.c | 2 ++
mdadm.h | 1 +
super-ddf.c | 14 +++++++++++++-
super-intel.c | 21 ++++++++++++++++++---
4 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/Examine.c b/Examine.c
index 02d5ac4..c79a701 100644
--- a/Examine.c
+++ b/Examine.c
@@ -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)
diff --git a/mdadm.h b/mdadm.h
index 4111eaf..91ba624 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -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.
diff --git a/super-ddf.c b/super-ddf.c
index c28d804..9bf08c2 100644
--- a/super-ddf.c
+++ b/super-ddf.c
@@ -1183,6 +1183,18 @@ 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
+ */
struct ddf_super *ddf = st->sb;
struct mdinfo info;
int i;
@@ -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,
diff --git a/super-intel.c b/super-intel.c
index dc0c9c0..782519e 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -761,9 +761,7 @@ 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");
@@ -772,6 +770,23 @@ static void brief_examine_super_imsm(struct supertype *st, int verbose)
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++) {
struct imsm_dev *dev = get_imsm_dev(super, 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,
More information about the pkg-mdadm-commits
mailing list