summaryrefslogtreecommitdiff
path: root/mdadm.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-10-23 16:27:15 +1100
committerNeilBrown <neilb@suse.de>2012-10-23 16:27:15 +1100
commit70c55e36b73827579fcb2dadbb6359ef605191ff (patch)
treeaf568358a6d2ab5c760820177fe121ab3ca4d0fa /mdadm.c
parent1dc837e4edc805819a1ff40add3d0beecfeecdbb (diff)
Add support for --replace and --with
--replace can be used to replace a device without completely failing it. Once the replacement completes the device will be failed. --with can indicate which of several spares to use. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'mdadm.c')
-rw-r--r--mdadm.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/mdadm.c b/mdadm.c
index 42544f1a..11016e7b 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -195,6 +195,8 @@ int main(int argc, char *argv[])
case Add:
case 'r':
case Remove:
+ case Replace:
+ case With:
case 'f':
case Fail:
case ReAdd: /* re-add */
@@ -928,6 +930,18 @@ int main(int argc, char *argv[])
* remove the device */
devmode = 'f';
continue;
+ case O(MANAGE,Replace):
+ /* Mark these devices for replacement */
+ devmode = 'R';
+ continue;
+ case O(MANAGE,With):
+ /* These are the replacements to use */
+ if (devmode != 'R') {
+ pr_err("--with must follow --replace\n");
+ exit(2);
+ }
+ devmode = 'W';
+ continue;
case O(INCREMENTAL,'R'):
case O(MANAGE,'R'):
case O(ASSEMBLE,'R'):