summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_default.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2003-03-07 20:45:07 +0000
committerjhb <jhb@FreeBSD.org>2003-03-07 20:45:07 +0000
commita189180b833e50908e46518d8f5a58e5e8be7d84 (patch)
tree1003131dea57a502b295cb8b1fa73bd861ad9345 /sys/kern/vfs_default.c
parent6471cae560187b8c423042c8556bb175438a72f9 (diff)
downloadFreeBSD-src-a189180b833e50908e46518d8f5a58e5e8be7d84.zip
FreeBSD-src-a189180b833e50908e46518d8f5a58e5e8be7d84.tar.gz
Respect any passed in external lockmgr flags such as LK_NOWAIT in the
default implementations of VOP_LOCK() and VOP_UNLOCK(). Tested by: jlemon, phk Glanced at by: jeffr
Diffstat (limited to 'sys/kern/vfs_default.c')
-rw-r--r--sys/kern/vfs_default.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c
index 5c843f7..b4ad5fe 100644
--- a/sys/kern/vfs_default.c
+++ b/sys/kern/vfs_default.c
@@ -445,8 +445,7 @@ vop_sharedlock(ap)
default:
panic("vop_sharedlock: bad operation %d", flags & LK_TYPE_MASK);
}
- if (flags & LK_INTERLOCK)
- vnflags |= LK_INTERLOCK;
+ vnflags |= flags & (LK_INTERLOCK | LK_EXTFLG_MASK);
#ifndef DEBUG_LOCKS
return (lockmgr(vp->v_vnlock, vnflags, VI_MTX(vp), ap->a_td));
#else
@@ -503,8 +502,7 @@ vop_nolock(ap)
default:
panic("vop_nolock: bad operation %d", flags & LK_TYPE_MASK);
}
- if (flags & LK_INTERLOCK)
- vnflags |= LK_INTERLOCK;
+ vnflags |= flags & (LK_INTERLOCK | LK_EXTFLG_MASK);
return(lockmgr(vp->v_vnlock, vnflags, VI_MTX(vp), ap->a_td));
#else /* for now */
/*
OpenPOWER on IntegriCloud