summaryrefslogtreecommitdiffstats
path: root/sys/dev/slice
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1998-04-22 01:51:34 +0000
committerjulian <julian@FreeBSD.org>1998-04-22 01:51:34 +0000
commitb8c5fe2677d5aa4db121a61184c0d0fc87e9cdd6 (patch)
tree058968717b1d750b785bc971c0d36bddb95e0e3e /sys/dev/slice
parent88ece5135ae0350444a49333e5f9119ee4cd28a9 (diff)
downloadFreeBSD-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/dev/slice')
-rw-r--r--sys/dev/slice/slice_base.c4
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);
}
OpenPOWER on IntegriCloud