Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Nov 2010 10:18:01 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r214976 - stable/8/sys/nfsserver
Message-ID:  <201011081018.oA8AI1uT023806@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Mon Nov  8 10:18:01 2010
New Revision: 214976
URL: http://svn.freebsd.org/changeset/base/214976

Log:
  MFC r214851:
  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().

Modified:
  stable/8/sys/nfsserver/nfs_serv.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/nfsserver/nfs_serv.c
==============================================================================
--- stable/8/sys/nfsserver/nfs_serv.c	Mon Nov  8 10:08:30 2010	(r214975)
+++ stable/8/sys/nfsserver/nfs_serv.c	Mon Nov  8 10:18:01 2010	(r214976)
@@ -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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011081018.oA8AI1uT023806>