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. MFC after: 5 days
This commit is contained in:
parent
2561992179
commit
b76ec2db93
@ -395,6 +395,7 @@ nfsvno_namei(struct nfsrv_descript *nd, struct nameidata *ndp,
|
||||
cnp->cn_thread = p;
|
||||
ndp->ni_startdir = dp;
|
||||
ndp->ni_rootdir = rootvnode;
|
||||
ndp->ni_topdir = NULL;
|
||||
|
||||
if (!lockleaf)
|
||||
cnp->cn_flags |= LOCKLEAF;
|
||||
|
Loading…
Reference in New Issue
Block a user