summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2002-03-08 13:43:43 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2002-03-08 13:43:43 +0000
commitf58932f2377846f6a89b37b930ec692132d88e60 (patch)
tree49e5c3d9d4a9afc9b1cac0d7c356678999386d65
parentc850bf03ed3c66d14bd658fa8857aab3dfa4d372 (diff)
Notes
-rw-r--r--sys/nfsclient/nfs_vnops.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c
index 9d40b89fbe3f..d9bdcea63dab 100644
--- a/sys/nfsclient/nfs_vnops.c
+++ b/sys/nfsclient/nfs_vnops.c
@@ -776,6 +776,7 @@ nfs_lookup(struct vop_lookup_args *ap)
return (error);
}
+ vhold(*vpp);
newvp = *vpp;
vpid = newvp->v_id;
/*
@@ -809,6 +810,7 @@ nfs_lookup(struct vop_lookup_args *ap)
if (cnp->cn_nameiop != LOOKUP &&
(flags & ISLASTCN))
cnp->cn_flags |= SAVENAME;
+ vdrop(newvp);
return (0);
}
cache_purge(newvp);
@@ -817,6 +819,7 @@ nfs_lookup(struct vop_lookup_args *ap)
if (lockparent && dvp != newvp && (flags & ISLASTCN))
VOP_UNLOCK(dvp, 0, td);
}
+ vdrop(newvp);
error = vn_lock(dvp, LK_EXCLUSIVE, td);
*vpp = NULLVP;
if (error) {