summaryrefslogtreecommitdiff
path: root/sys/nfs/nfs_node.c
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>2001-12-01 01:44:36 +0000
committerArtur Grabowski <art@cvs.openbsd.org>2001-12-01 01:44:36 +0000
commit4174945ae03cbd3080fbbd9707fcf67fbeb19380 (patch)
tree3aa7c1420f89fc6abb2f4372831f2ae34c48dcaf /sys/nfs/nfs_node.c
parenteb9c165e0ef5a71856a70aa862278113effb2896 (diff)
Unlock and drop vnode if VOP_GETATTR fails.
Diffstat (limited to 'sys/nfs/nfs_node.c')
-rw-r--r--sys/nfs/nfs_node.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/nfs/nfs_node.c b/sys/nfs/nfs_node.c
index 567738584da..f0cebcb4566 100644
--- a/sys/nfs/nfs_node.c
+++ b/sys/nfs/nfs_node.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nfs_node.c,v 1.17 2001/11/27 05:27:12 art Exp $ */
+/* $OpenBSD: nfs_node.c,v 1.18 2001/12/01 01:44:35 art Exp $ */
/* $NetBSD: nfs_node.c,v 1.16 1996/02/18 11:53:42 fvdl Exp $ */
/*
@@ -177,6 +177,8 @@ loop:
*/
error = VOP_GETATTR(vp, &np->n_vattr, curproc->p_ucred, curproc);
if (error) {
+ lockmgr(&nfs_hashlock, LK_RELEASE, 0, p);
+ vrele(vp);
return error;
}
uvm_vnp_setsize(vp, np->n_vattr.va_size);