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
This commit is contained in:
John Baldwin 2003-03-07 20:45:07 +00:00
parent ea6ff0649f
commit 9722121a3c

View File

@ -445,8 +445,7 @@ vop_sharedlock(ap)
default: default:
panic("vop_sharedlock: bad operation %d", flags & LK_TYPE_MASK); panic("vop_sharedlock: bad operation %d", flags & LK_TYPE_MASK);
} }
if (flags & LK_INTERLOCK) vnflags |= flags & (LK_INTERLOCK | LK_EXTFLG_MASK);
vnflags |= LK_INTERLOCK;
#ifndef DEBUG_LOCKS #ifndef DEBUG_LOCKS
return (lockmgr(vp->v_vnlock, vnflags, VI_MTX(vp), ap->a_td)); return (lockmgr(vp->v_vnlock, vnflags, VI_MTX(vp), ap->a_td));
#else #else
@ -503,8 +502,7 @@ vop_nolock(ap)
default: default:
panic("vop_nolock: bad operation %d", flags & LK_TYPE_MASK); panic("vop_nolock: bad operation %d", flags & LK_TYPE_MASK);
} }
if (flags & LK_INTERLOCK) vnflags |= flags & (LK_INTERLOCK | LK_EXTFLG_MASK);
vnflags |= LK_INTERLOCK;
return(lockmgr(vp->v_vnlock, vnflags, VI_MTX(vp), ap->a_td)); return(lockmgr(vp->v_vnlock, vnflags, VI_MTX(vp), ap->a_td));
#else /* for now */ #else /* for now */
/* /*