aboutsummaryrefslogtreecommitdiff
path: root/sys/nfsclient
diff options
context:
space:
mode:
authorEivind Eklund <eivind@FreeBSD.org>1999-12-11 16:13:02 +0000
committerEivind Eklund <eivind@FreeBSD.org>1999-12-11 16:13:02 +0000
commit6bdfe06ad9337a33a402bc933006265c30980780 (patch)
treef94d51806ece1a3d319c06648a52800c0d252cac /sys/nfsclient
parent47e98476fee7d4d1ff1796408f15724f8d786ddb (diff)
downloadsrc-6bdfe06ad9337a33a402bc933006265c30980780.tar.gz
src-6bdfe06ad9337a33a402bc933006265c30980780.zip
Lock reporting and assertion changes.
* lockstatus() and VOP_ISLOCKED() gets a new process argument and a new return value: LK_EXCLOTHER, when the lock is held exclusively by another process. * The ASSERT_VOP_(UN)LOCKED family is extended to use what this gives them * Extend the vnode_if.src format to allow more exact specification than locked/unlocked. This commit should not do any semantic changes unless you are using DEBUG_VFS_LOCKS. Discussed with: grog, mch, peter, phk Reviewed by: peter
Notes
Notes: svn path=/head/; revision=54444
Diffstat (limited to 'sys/nfsclient')
-rw-r--r--sys/nfsclient/nfs_node.c1
-rw-r--r--sys/nfsclient/nfs_vfsops.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/sys/nfsclient/nfs_node.c b/sys/nfsclient/nfs_node.c
index 13ff9b2902a0..53c73a165d9e 100644
--- a/sys/nfsclient/nfs_node.c
+++ b/sys/nfsclient/nfs_node.c
@@ -380,6 +380,7 @@ int
nfs_islocked(ap)
struct vop_islocked_args /* {
struct vnode *a_vp;
+ struct proc *a_p;
} */ *ap;
{
return VTONFS(ap->a_vp)->n_flag & NLOCKED ? 1 : 0;
diff --git a/sys/nfsclient/nfs_vfsops.c b/sys/nfsclient/nfs_vfsops.c
index dc9e053ac8cd..8a0c36869410 100644
--- a/sys/nfsclient/nfs_vfsops.c
+++ b/sys/nfsclient/nfs_vfsops.c
@@ -1062,7 +1062,7 @@ loop:
*/
if (vp->v_mount != mp)
goto loop;
- if (VOP_ISLOCKED(vp) || TAILQ_EMPTY(&vp->v_dirtyblkhd) ||
+ if (VOP_ISLOCKED(vp, NULL) || TAILQ_EMPTY(&vp->v_dirtyblkhd) ||
waitfor == MNT_LAZY)
continue;
if (vget(vp, LK_EXCLUSIVE, p))