Loading fs/nfsd/nfs4proc.c +10 −6 Original line number Original line Diff line number Diff line Loading @@ -604,9 +604,7 @@ nfsd4_link(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, return status; return status; } } static __be32 static __be32 nfsd4_do_lookupp(struct svc_rqst *rqstp, struct svc_fh *fh) nfsd4_lookupp(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, void *arg) { { struct svc_fh tmp_fh; struct svc_fh tmp_fh; __be32 ret; __be32 ret; Loading @@ -615,13 +613,19 @@ nfsd4_lookupp(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ret = exp_pseudoroot(rqstp, &tmp_fh); ret = exp_pseudoroot(rqstp, &tmp_fh); if (ret) if (ret) return ret; return ret; if (tmp_fh.fh_dentry == cstate->current_fh.fh_dentry) { if (tmp_fh.fh_dentry == fh->fh_dentry) { fh_put(&tmp_fh); fh_put(&tmp_fh); return nfserr_noent; return nfserr_noent; } } fh_put(&tmp_fh); fh_put(&tmp_fh); return nfsd_lookup(rqstp, &cstate->current_fh, return nfsd_lookup(rqstp, fh, "..", 2, fh); "..", 2, &cstate->current_fh); } static __be32 nfsd4_lookupp(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, void *arg) { return nfsd4_do_lookupp(rqstp, &cstate->current_fh); } } static __be32 static __be32 Loading Loading
fs/nfsd/nfs4proc.c +10 −6 Original line number Original line Diff line number Diff line Loading @@ -604,9 +604,7 @@ nfsd4_link(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, return status; return status; } } static __be32 static __be32 nfsd4_do_lookupp(struct svc_rqst *rqstp, struct svc_fh *fh) nfsd4_lookupp(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, void *arg) { { struct svc_fh tmp_fh; struct svc_fh tmp_fh; __be32 ret; __be32 ret; Loading @@ -615,13 +613,19 @@ nfsd4_lookupp(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ret = exp_pseudoroot(rqstp, &tmp_fh); ret = exp_pseudoroot(rqstp, &tmp_fh); if (ret) if (ret) return ret; return ret; if (tmp_fh.fh_dentry == cstate->current_fh.fh_dentry) { if (tmp_fh.fh_dentry == fh->fh_dentry) { fh_put(&tmp_fh); fh_put(&tmp_fh); return nfserr_noent; return nfserr_noent; } } fh_put(&tmp_fh); fh_put(&tmp_fh); return nfsd_lookup(rqstp, &cstate->current_fh, return nfsd_lookup(rqstp, fh, "..", 2, fh); "..", 2, &cstate->current_fh); } static __be32 nfsd4_lookupp(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, void *arg) { return nfsd4_do_lookupp(rqstp, &cstate->current_fh); } } static __be32 static __be32 Loading