From: NeilBrown Date: Mon, 19 Oct 2009 06:00:52 +0000 (+1100) Subject: Detail: list containers before members. X-Git-Tag: mdadm-3.0.3~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8f1b2bbbb9cab959ecab0c474dc81afdc7b6dffd;p=thirdparty%2Fmdadm.git 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 --- diff --git a/mdadm.c b/mdadm.c index df48117d..4651e737 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 */