summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2008-11-04 21:56:42 +1100
committerNeilBrown <neilb@suse.de>2008-11-04 21:56:42 +1100
commitd49410d3ab87cf62f1f34eb6ccca5eaefb2f5428 (patch)
treee46a4a88518b927306b0414c8e606b872ee13b71
parenta714580e029ff92606a10be5db0693f419ce1fec (diff)
Stop: drop any partitions that may be associated with an array when stopping it.
Not all kernels automatically discard partitions when the array is stopped, so call the RRPART ioctl to force it. Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r--Manage.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/Manage.c b/Manage.c
index 7855e21a..94246503 100644
--- a/Manage.c
+++ b/Manage.c
@@ -260,8 +260,11 @@ int Manage_runstop(char *devname, int fd, int runstop, int quiet)
return 1;
}
/* prior to 2.6.28, KOBJ_CHANGE was not sent when an md array
- * was stopped, so We'll do it here just to be sure.
+ * was stopped, so We'll do it here just to be sure. Drop any
+ * partitions as well...
*/
+ if (fd >= 0)
+ ioctl(fd, BLKRRPART, 0);
if (mdi)
sysfs_uevent(mdi, "change");