diff options
author | julian <julian@FreeBSD.org> | 1998-04-22 01:51:34 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 1998-04-22 01:51:34 +0000 |
commit | b8c5fe2677d5aa4db121a61184c0d0fc87e9cdd6 (patch) | |
tree | 058968717b1d750b785bc971c0d36bddb95e0e3e /sys | |
parent | 88ece5135ae0350444a49333e5f9119ee4cd28a9 (diff) | |
download | FreeBSD-src-b8c5fe2677d5aa4db121a61184c0d0fc87e9cdd6.zip FreeBSD-src-b8c5fe2677d5aa4db121a61184c0d0fc87e9cdd6.tar.gz |
Don't allow an open to succeed if the device is invalidated during the
open process.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/slice/slice_base.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/slice/slice_base.c b/sys/dev/slice/slice_base.c index 558720b..983de11 100644 --- a/sys/dev/slice/slice_base.c +++ b/sys/dev/slice/slice_base.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: $ + * $Id: slice_base.c,v 1.1 1998/04/19 23:31:12 julian Exp $ */ #include <sys/param.h> @@ -577,6 +577,8 @@ sliceopen(struct slice *slice, int flags, int mode, slice->flags |= sl_flags; reject: unlockslice(slice); + if ((slice->flags & SLF_INVALID) == SLF_INVALID) + error = ENODEV; /* we've been zapped while down there! */ sl_unref(slice); /* lockslice gave us a ref.*/ return (error); } |