diff options
author | trasz <trasz@FreeBSD.org> | 2009-01-10 17:17:18 +0000 |
---|---|---|
committer | trasz <trasz@FreeBSD.org> | 2009-01-10 17:17:18 +0000 |
commit | 81e2127caa15f88bbc558045f3e1f33aec350e64 (patch) | |
tree | b5a421ef7bd7a2655743bae7cfbc5f273ae7d333 /sys/dev/md/md.c | |
parent | 2715f5ad3158486844c88030e49438d3e4b418f9 (diff) | |
download | FreeBSD-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.c | 6 |
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: |