Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Aug 2014 22:03:16 +0000 (UTC)
From:      Rick Macklem <rmacklem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r270435 - stable/9/sys/fs/nfsserver
Message-ID:  <201408232203.s7NM3G3E076049@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rmacklem
Date: Sat Aug 23 22:03:15 2014
New Revision: 270435
URL: http://svnweb.freebsd.org/changeset/base/270435

Log:
  MFC: r268273
  The new NFSv3 server did not generate directory postop attributes for
  the reply to ReaddirPlus when the server failed within the loop
  that calls VFS_VGET(). This failure is most likely an error
  return from VFS_VGET() caused by a bogus d_fileno that was
  truncated to 32bits.
  This patch fixes the server so that it will return directory postop
  attributes for the failure. It does not fix the underlying issue caused
  by d_fileno being uint32_t when a file system like ZFS generates
  a fileno that is greater than 32bits.

Modified:
  stable/9/sys/fs/nfsserver/nfs_nfsdport.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/fs/   (props changed)

Modified: stable/9/sys/fs/nfsserver/nfs_nfsdport.c
==============================================================================
--- stable/9/sys/fs/nfsserver/nfs_nfsdport.c	Sat Aug 23 21:16:26 2014	(r270434)
+++ stable/9/sys/fs/nfsserver/nfs_nfsdport.c	Sat Aug 23 22:03:15 2014	(r270435)
@@ -2265,9 +2265,11 @@ again:
 	if (dirlen > cnt || nd->nd_repstat) {
 		if (!nd->nd_repstat && entrycnt == 0)
 			nd->nd_repstat = NFSERR_TOOSMALL;
-		if (nd->nd_repstat)
+		if (nd->nd_repstat) {
 			newnfs_trimtrailing(nd, mb0, bpos0);
-		else
+			if (nd->nd_flag & ND_NFSV3)
+				nfsrv_postopattr(nd, getret, &at);
+		} else
 			newnfs_trimtrailing(nd, mb1, bpos1);
 		eofflag = 0;
 	} else if (cpos < cend)



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