summaryrefslogtreecommitdiffstats
path: root/sys/dev/md/md.c
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2009-01-10 17:17:18 +0000
committertrasz <trasz@FreeBSD.org>2009-01-10 17:17:18 +0000
commit81e2127caa15f88bbc558045f3e1f33aec350e64 (patch)
treeb5a421ef7bd7a2655743bae7cfbc5f273ae7d333 /sys/dev/md/md.c
parent2715f5ad3158486844c88030e49438d3e4b418f9 (diff)
downloadFreeBSD-src-81e2127caa15f88bbc558045f3e1f33aec350e64.zip
FreeBSD-src-81e2127caa15f88bbc558045f3e1f33aec350e64.tar.gz
Add the possibility to specify "-o force" with "mdconfig -du".
Reviewed by: scottl Approved by: rwatson (mentor) Sponsored by: FreeBSD Foundation
Diffstat (limited to 'sys/dev/md/md.c')
-rw-r--r--sys/dev/md/md.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c
index bb9e64b..99b18b1 100644
--- a/sys/dev/md/md.c
+++ b/sys/dev/md/md.c
@@ -1133,13 +1133,15 @@ xmdctlioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags, struct thread
mdinit(sc);
return (0);
case MDIOCDETACH:
- if (mdio->md_mediasize != 0 || mdio->md_options != 0)
+ if (mdio->md_mediasize != 0 ||
+ (mdio->md_options & ~MD_FORCE) != 0)
return (EINVAL);
sc = mdfind(mdio->md_unit);
if (sc == NULL)
return (ENOENT);
- if (sc->opencount != 0 && !(sc->flags & MD_FORCE))
+ if (sc->opencount != 0 && !(sc->flags & MD_FORCE) &&
+ !(mdio->md_options & MD_FORCE))
return (EBUSY);
return (mddestroy(sc, td));
case MDIOCQUERY:
OpenPOWER on IntegriCloud