From 0d71606b28f40348cf50e0975609ef1438285b64 Mon Sep 17 00:00:00 2001 From: jeff Date: Tue, 22 Feb 2005 23:59:11 +0000 Subject: - Add a check for xlock in vop_lock_assert. Presently the xlock is considered to be as good as an exclusive lock, although there is still a possibility of someone acquiring a VOP LOCK while xlock is held. Sponsored by: Isilon Systems, Inc. --- sys/kern/vfs_subr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sys/kern/vfs_subr.c') diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 931fbe5..0a8b352 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -3372,7 +3372,8 @@ void assert_vop_locked(struct vnode *vp, const char *str) { - if (vp && !IGNORE_LOCK(vp) && VOP_ISLOCKED(vp, NULL) == 0) + if (vp && !IGNORE_LOCK(vp) && VOP_ISLOCKED(vp, NULL) == 0 && + !((vp->v_iflag & VI_XLOCK) && vp->v_vxthread == curthread)) vfs_badlock("is not locked but should be", str, vp); } -- cgit v1.1