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>
This commit is contained in:
parent
614825ea82
commit
fabbfd48b6
9
mdadm.8
9
mdadm.8
|
@ -1081,10 +1081,11 @@ listed, otherwise it will return failure.
|
|||
|
||||
.TP
|
||||
.BR \-\-wait\-clean
|
||||
For each md device given, arrange for the array to be marked clean as
|
||||
soon as possible. Also, quiesce resync so that the monitor for external
|
||||
metadata arrays (mdmon) has an opportunity to checkpoint the resync
|
||||
position.
|
||||
For each md device given, or each device in /proc/mdstat if
|
||||
.B \-\-scan
|
||||
is given, arrange for the array to be marked clean as soon as possible.
|
||||
Also, quiesce resync so that the monitor for external metadata arrays
|
||||
(mdmon) has an opportunity to checkpoint the resync position.
|
||||
.I mdadm
|
||||
will return with success if the array uses external metadata and we
|
||||
successfully waited. For native arrays this returns immediately as the
|
||||
|
|
16
mdadm.c
16
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) {
|
||||
|
|
Loading…
Reference in New Issue