summaryrefslogtreecommitdiffstats
path: root/mdadm.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-10-19 17:00:52 +1100
committerNeilBrown <neilb@suse.de>2009-10-19 17:00:52 +1100
commit8f1b2bbbb9cab959ecab0c474dc81afdc7b6dffd (patch)
tree67ea85fde0c43cffab5716a81fc22f69fc359a01 /mdadm.c
parent00eb571675b431b3845c67abba891a198cef06f3 (diff)
downloadmdadm-8f1b2bbbb9cab959ecab0c474dc81afdc7b6dffd.tar.gz
mdadm-8f1b2bbbb9cab959ecab0c474dc81afdc7b6dffd.tar.xz
mdadm-8f1b2bbbb9cab959ecab0c474dc81afdc7b6dffd.zip
Detail: list containers before members.
To allow "--assemble --scan" to have a chance, list containers before members in --detail --scan output. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'mdadm.c')
-rw-r--r--mdadm.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/mdadm.c b/mdadm.c
index df48117..4651e73 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -1263,11 +1263,18 @@ int main(int argc, char *argv[])
struct mdstat_ent *ms = mdstat_read(0, 1);
struct mdstat_ent *e;
struct map_ent *map = NULL;
+ int members;
int v = verbose>1?0:verbose+1;
+ for (members = 0; members <= 1; members++) {
for (e=ms ; e ; e=e->next) {
char *name;
struct map_ent *me;
+ int member = e->metadata_version &&
+ strncmp(e->metadata_version,
+ "external:/", 10) == 0;
+ if (members != member)
+ continue;
me = map_by_devnum(&map, e->devnum);
if (me && me->path
&& strcmp(me->path, "/unknown") != 0)
@@ -1288,6 +1295,7 @@ int main(int argc, char *argv[])
rv |= WaitClean(name, -1, v);
put_md_name(name);
}
+ }
free_mdstat(ms);
} else if (devmode == 'S' && scan) {
/* apply --stop to all devices in /proc/mdstat */