|
@@ -181,16 +181,10 @@ nfsd_lookup_dentry(struct svc_rqst *rqstp, struct svc_fh *fhp,
|
|
|
struct svc_export *exp;
|
|
|
struct dentry *dparent;
|
|
|
struct dentry *dentry;
|
|
|
- __be32 err;
|
|
|
int host_err;
|
|
|
|
|
|
dprintk("nfsd: nfsd_lookup(fh %s, %.*s)\n", SVCFH_fmt(fhp), len,name);
|
|
|
|
|
|
- /* Obtain dentry and export. */
|
|
|
- err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_EXEC);
|
|
|
- if (err)
|
|
|
- return err;
|
|
|
-
|
|
|
dparent = fhp->fh_dentry;
|
|
|
exp = fhp->fh_export;
|
|
|
exp_get(exp);
|
|
@@ -254,6 +248,9 @@ nfsd_lookup(struct svc_rqst *rqstp, struct svc_fh *fhp, const char *name,
|
|
|
struct dentry *dentry;
|
|
|
__be32 err;
|
|
|
|
|
|
+ err = fh_verify(rqstp, fhp, S_IFDIR, NFSD_MAY_EXEC);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
err = nfsd_lookup_dentry(rqstp, fhp, name, len, &exp, &dentry);
|
|
|
if (err)
|
|
|
return err;
|