svn commit: r232683 - in stable/9/sys: fs/nfsserver i386/conf
Rick Macklem
rmacklem at FreeBSD.org
Thu Mar 8 03:02:49 UTC 2012
Author: rmacklem
Date: Thu Mar 8 03:02:48 2012
New Revision: 232683
URL: http://svn.freebsd.org/changeset/base/232683
Log:
MFC: r2323467
The name caching changes of r230394 exposed an intermittent bug
in the new NFS server for NFSv4, where it would report ENOENT
when the file actually existed on the server. This turned out
to be caused by not initializing ni_topdir before calling lookup()
and there was a rare case where the value on the stack location
assigned to ni_topdir happened to be a pointer to a ".." entry,
such that "dp == ndp->ni_topdir" succeeded in lookup().
This patch initializes ni_topdir to fix the problem.
Modified:
stable/9/sys/fs/nfsserver/nfs_nfsdport.c
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/amd64/include/xen/ (props changed)
stable/9/sys/boot/ (props changed)
stable/9/sys/boot/i386/efi/ (props changed)
stable/9/sys/boot/ia64/efi/ (props changed)
stable/9/sys/boot/ia64/ski/ (props changed)
stable/9/sys/boot/powerpc/boot1.chrp/ (props changed)
stable/9/sys/boot/powerpc/ofw/ (props changed)
stable/9/sys/cddl/contrib/opensolaris/ (props changed)
stable/9/sys/conf/ (props changed)
stable/9/sys/contrib/dev/acpica/ (props changed)
stable/9/sys/contrib/octeon-sdk/ (props changed)
stable/9/sys/contrib/pf/ (props changed)
stable/9/sys/contrib/x86emu/ (props changed)
stable/9/sys/i386/conf/XENHVM (props changed)
Modified: stable/9/sys/fs/nfsserver/nfs_nfsdport.c
==============================================================================
--- stable/9/sys/fs/nfsserver/nfs_nfsdport.c Thu Mar 8 02:27:29 2012 (r232682)
+++ stable/9/sys/fs/nfsserver/nfs_nfsdport.c Thu Mar 8 03:02:48 2012 (r232683)
@@ -395,6 +395,7 @@ nfsvno_namei(struct nfsrv_descript *nd,
cnp->cn_thread = p;
ndp->ni_startdir = dp;
ndp->ni_rootdir = rootvnode;
+ ndp->ni_topdir = NULL;
if (!lockleaf)
cnp->cn_flags |= LOCKLEAF;
More information about the svn-src-stable-9
mailing list