nfsd4: cross mountpoints when looking up parents
authorJ. Bruce Fields <bfields@citi.umich.edu>
Sat, 26 Sep 2009 20:53:01 +0000 (16:53 -0400)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Mon, 28 Sep 2009 16:07:52 +0000 (12:07 -0400)
3c394ddaa7ea4205f933fd9b481166b2669368a9 "nfsd4: nfsv4 clients should
cross mountpoints" forgot to handle lookups of parents directories.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/nfsd/vfs.c

index a293f0273263fb18dd1837a2a906769b8a9b71d6..b8ed58bab8b1faf89fff6c0e8a06a695d1a8f3be 100644 (file)
@@ -169,7 +169,7 @@ nfsd_lookup_dentry(struct svc_rqst *rqstp, struct svc_fh *fhp,
                        dentry = dget(dparent);
                else if (dparent != exp->ex_path.dentry)
                        dentry = dget_parent(dparent);
-               else if (!EX_NOHIDE(exp))
+               else if (!EX_NOHIDE(exp) && !nfsd_v4client(rqstp))
                        dentry = dget(dparent); /* .. == . just like at / */
                else {
                        /* checking mountpoint crossing is very different when stepping up */