summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/fs/nullfs/null_vnops.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/fs/nullfs/null_vnops.c b/sys/fs/nullfs/null_vnops.c
index f22e870..74b1ff2 100644
--- a/sys/fs/nullfs/null_vnops.c
+++ b/sys/fs/nullfs/null_vnops.c
@@ -591,8 +591,12 @@ null_lock(ap)
int error;
if (flags & LK_THISLAYER) {
- if (vp->v_vnlock != NULL)
- return 0; /* lock is shared across layers */
+ if (vp->v_vnlock != NULL) {
+ /* lock is shared across layers */
+ if (flags & LK_INTERLOCK)
+ mtx_unlock(&vp->v_interlock);
+ return 0;
+ }
error = lockmgr(&vp->v_lock, flags & ~LK_THISLAYER,
&vp->v_interlock, td);
return (error);
OpenPOWER on IntegriCloud