diff options
| author | mlelstv <mlelstv@NetBSD.org> | 2021-06-02 17:56:40 +0000 |
|---|---|---|
| committer | mlelstv <mlelstv@NetBSD.org> | 2021-06-02 17:56:40 +0000 |
| commit | 356da1cb7fbbb96b0f64a5ee97d4949fbb8dbbc9 (patch) | |
| tree | 0882895e15ae4aaeeca29dec333f9854bbb186d4 /sys/dev | |
| parent | 7b8ab91a4d506f438ffeb245c57b2948718f8ea1 (diff) | |
Clear sc_mode only on last close.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/dkwedge/dk.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/dev/dkwedge/dk.c b/sys/dev/dkwedge/dk.c index b86d026a46e..b637ba6734b 100644 --- a/sys/dev/dkwedge/dk.c +++ b/sys/dev/dkwedge/dk.c @@ -1,4 +1,4 @@ -/* $NetBSD: dk.c,v 1.104 2021/06/02 15:59:08 mlelstv Exp $ */ +/* $NetBSD: dk.c,v 1.105 2021/06/02 17:56:40 mlelstv Exp $ */ /*- * Copyright (c) 2004, 2005, 2006, 2007 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: dk.c,v 1.104 2021/06/02 15:59:08 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dk.c,v 1.105 2021/06/02 17:56:40 mlelstv Exp $"); #ifdef _KERNEL_OPT #include "opt_dkwedge.h" @@ -1221,6 +1221,7 @@ dklastclose(struct dkwedge_softc *sc) KASSERT(sc->sc_parent->dk_rawvp != NULL); vp = sc->sc_parent->dk_rawvp; sc->sc_parent->dk_rawvp = NULL; + sc->sc_mode = 0; } } @@ -1264,9 +1265,7 @@ dkclose(dev_t dev, int flags, int fmt, struct lwp *l) if (sc->sc_dk.dk_openmask == 0) { error = dklastclose(sc); /* releases locks */ - sc->sc_mode = 0; } else { - sc->sc_mode = 0; mutex_exit(&sc->sc_parent->dk_rawlock); mutex_exit(&sc->sc_dk.dk_openlock); } |
