summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--daemon/md.c16
-rw-r--r--generator/generator_actions.ml17
-rwxr-xr-xregressions/test-mdadm.sh13
-rw-r--r--src/MAX_PROC_NR2
4 files changed, 47 insertions, 1 deletions
diff --git a/daemon/md.c b/daemon/md.c
index 8e4ff884..43bb64ed 100644
--- a/daemon/md.c
+++ b/daemon/md.c
@@ -310,3 +310,19 @@ error:
return NULL;
}
+
+int
+do_md_stop(const char *md)
+{
+ int r;
+ char *err = NULL;
+
+ const char *mdadm[] = { "mdadm", "--stop", md, NULL};
+ r = commandv(NULL, &err, mdadm);
+ if (r == -1) {
+ reply_with_error("%s", err);
+ free(err);
+ return -1;
+ }
+ return 0;
+}
diff --git a/generator/generator_actions.ml b/generator/generator_actions.ml
index c0ef2610..361df052 100644
--- a/generator/generator_actions.ml
+++ b/generator/generator_actions.ml
@@ -6527,6 +6527,23 @@ The name of the MD device.
=back");
+ ("md_stop", (RErr, [Device "md"], []), 302, [Optional "mdadm"],
+ [],
+ "stop a Linux md (RAID) device",
+ "\
+This command deactivates the MD array named C<md>. The
+device is stopped, but it is not destroyed or zeroed.
+
+The parameter is:
+
+=over 4
+
+=item C<md>
+
+The md (RAID) device which to be deactivated.
+
+=back");
+
]
let all_functions = non_daemon_functions @ daemon_functions
diff --git a/regressions/test-mdadm.sh b/regressions/test-mdadm.sh
index e9b0db5e..7314ca56 100755
--- a/regressions/test-mdadm.sh
+++ b/regressions/test-mdadm.sh
@@ -150,4 +150,17 @@ done
../fish/guestfish --remote exit
+eval `../fish/guestfish --listen`
+../fish/guestfish --remote add-ro md-test1.img
+../fish/guestfish --remote add-ro md-test2.img
+../fish/guestfish --remote add-ro md-test3.img
+../fish/guestfish --remote add-ro md-test4.img
+../fish/guestfish --remote run
+
+for md in `../fish/guestfish --remote list-md-devices`; do
+ ../fish/guestfish --remote md-stop "${md}"
+done
+
+../fish/guestfish --remote exit
+
rm -f md-detail.out md-test1.img md-test2.img md-test3.img md-test4.img
diff --git a/src/MAX_PROC_NR b/src/MAX_PROC_NR
index d8fc48a4..274f7143 100644
--- a/src/MAX_PROC_NR
+++ b/src/MAX_PROC_NR
@@ -1 +1 @@
-301
+302