summaryrefslogtreecommitdiffstats
path: root/mdadm.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2008-11-26 15:39:50 -0700
committerNeilBrown <neilb@suse.de>2008-11-27 15:30:21 +1100
commitfabbfd48b6c2398a344d2d4f7cbf0ab98181a6d4 (patch)
treea3e73bc19b2350fe7741073618221e6a8e5b4dff /mdadm.c
parent614825ea825ac70ba847cd87e3beafcc557c6273 (diff)
downloadmdadm-fabbfd48b6c2398a344d2d4f7cbf0ab98181a6d4.tar.gz
mdadm-fabbfd48b6c2398a344d2d4f7cbf0ab98181a6d4.tar.xz
mdadm-fabbfd48b6c2398a344d2d4f7cbf0ab98181a6d4.zip
Support --wait-clean --scan
Its cumbersome to determine which devices to wait for in a system shutdown script, so hook up --scan. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'mdadm.c')
-rw-r--r--mdadm.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/mdadm.c b/mdadm.c
index e0f51b7..4101c5b 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -1213,10 +1213,14 @@ int main(int argc, char *argv[])
SparcAdjust, ss, homehost);
} else {
if (devlist == NULL) {
- if (devmode=='D' && scan) {
- /* apply --detail to all devices in /proc/mdstat */
+ if ((devmode=='D' || devmode == Waitclean) && scan) {
+ /* apply --detail or --wait-clean to
+ * all devices in /proc/mdstat
+ */
struct mdstat_ent *ms = mdstat_read(0, 1);
struct mdstat_ent *e;
+ int v = verbose>1?0:verbose+1;
+
for (e=ms ; e ; e=e->next) {
char *name = get_md_name(e->devnum);
@@ -1225,8 +1229,12 @@ int main(int argc, char *argv[])
e->dev);
continue;
}
- rv |= Detail(name, verbose>1?0:verbose+1,
- export, test, homehost);
+ if (devmode == 'D')
+ rv |= Detail(name, v,
+ export, test,
+ homehost);
+ else
+ rv |= WaitClean(name, v);
put_md_name(name);
}
} else if (devmode == 'S' && scan) {