mirror of https://gitee.com/openkylin/linux.git
nfsd4: make fh_verify responsibility of nfsd_lookup_dentry caller
The secinfo caller actually won't want this. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
22b0321496
commit
29a78a3ed7
|
@ -762,6 +762,9 @@ nfsd4_secinfo(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
|||
__be32 err;
|
||||
|
||||
fh_init(&resfh, NFS4_FHSIZE);
|
||||
err = fh_verify(rqstp, &cstate->current_fh, S_IFDIR, NFSD_MAY_EXEC);
|
||||
if (err)
|
||||
return err;
|
||||
err = nfsd_lookup_dentry(rqstp, &cstate->current_fh,
|
||||
secinfo->si_name, secinfo->si_namelen,
|
||||
&exp, &dentry);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue