]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC: r2323467
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 9 Apr 2012 04:05:22 +0000 (04:05 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 9 Apr 2012 04:05:22 +0000 (04:05 +0000)
commit4ebfd83b5181f0ee2c171984698f2078bda3b4c0
tree1d1d6c72c9f035c78f0ef4b3bc06379469b7bc15
parent0867453ac63bdfa920aef65e244dc31361d52039
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.

git-svn-id: svn://svn.freebsd.org/base/stable/8@234051 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/fs/nfsserver/nfs_nfsdport.c