summaryrefslogtreecommitdiff
path: root/Manage.c
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 /Manage.c
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>
Diffstat (limited to 'Manage.c')
-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");