diff options
author | jhb <jhb@FreeBSD.org> | 2003-03-07 20:45:07 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2003-03-07 20:45:07 +0000 |
commit | a189180b833e50908e46518d8f5a58e5e8be7d84 (patch) | |
tree | 1003131dea57a502b295cb8b1fa73bd861ad9345 /sys/kern/vfs_default.c | |
parent | 6471cae560187b8c423042c8556bb175438a72f9 (diff) | |
download | FreeBSD-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.c | 6 |
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 */ /* |