svn commit: r214851 - head/sys/nfsserver
Konstantin Belousov
kib at FreeBSD.org
Fri Nov 5 21:13:17 UTC 2010
Author: kib
Date: Fri Nov 5 21:13:16 2010
New Revision: 214851
URL: http://svn.freebsd.org/changeset/base/214851
Log:
Fix a bug in r214049. The nvp == vp case shall be handled specially
only for !usevget case. If VFS_VGET is working, the vnode shared lock
is obtained recursively and vput() shall be done, not vunref().
Submitted by: rmacklem
Tested by: Josh Carroll <josh.carroll gmail com>
MFC after: 3 days
Modified:
head/sys/nfsserver/nfs_serv.c
Modified: head/sys/nfsserver/nfs_serv.c
==============================================================================
--- head/sys/nfsserver/nfs_serv.c Fri Nov 5 20:58:18 2010 (r214850)
+++ head/sys/nfsserver/nfs_serv.c Fri Nov 5 21:13:16 2010 (r214851)
@@ -3252,7 +3252,7 @@ again:
nfhp->fh_fsid = nvp->v_mount->mnt_stat.f_fsid;
if ((error1 = VOP_VPTOFH(nvp, &nfhp->fh_fid)) == 0)
error1 = VOP_GETATTR(nvp, vap, cred);
- if (vp == nvp)
+ if (!usevget && vp == nvp)
vunref(nvp);
else
vput(nvp);
More information about the svn-src-head
mailing list