提交 2dd6e458 编写于 作者: T Trond Myklebust 提交者: J. Bruce Fields

nfsd: Cleanup - Let nfsd4_lookup_stateid() take a cstate argument

The cstate already holds information about the session, and hence
the client id, so it makes more sense to pass that information
rather than the current practice of passing a 'minor version' number.
Signed-off-by: NTrond Myklebust <trond.myklebust@primarydata.com>
Reviewed-by: NChristoph Hellwig <hch@lst.de>
Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
上级 d4e19e70
...@@ -3781,12 +3781,14 @@ static __be32 nfsd4_validate_stateid(struct nfs4_client *cl, stateid_t *stateid) ...@@ -3781,12 +3781,14 @@ static __be32 nfsd4_validate_stateid(struct nfs4_client *cl, stateid_t *stateid)
} }
} }
static __be32 nfsd4_lookup_stateid(stateid_t *stateid, unsigned char typemask, static __be32
struct nfs4_stid **s, bool sessions, nfsd4_lookup_stateid(struct nfsd4_compound_state *cstate,
struct nfsd_net *nn) stateid_t *stateid, unsigned char typemask,
struct nfs4_stid **s, struct nfsd_net *nn)
{ {
struct nfs4_client *cl; struct nfs4_client *cl;
__be32 status; __be32 status;
bool sessions = cstate->minorversion != 0;
if (ZERO_STATEID(stateid) || ONE_STATEID(stateid)) if (ZERO_STATEID(stateid) || ONE_STATEID(stateid))
return nfserr_bad_stateid; return nfserr_bad_stateid;
...@@ -3832,9 +3834,9 @@ nfs4_preprocess_stateid_op(struct net *net, struct nfsd4_compound_state *cstate, ...@@ -3832,9 +3834,9 @@ nfs4_preprocess_stateid_op(struct net *net, struct nfsd4_compound_state *cstate,
nfs4_lock_state(); nfs4_lock_state();
status = nfsd4_lookup_stateid(stateid, status = nfsd4_lookup_stateid(cstate, stateid,
NFS4_DELEG_STID|NFS4_OPEN_STID|NFS4_LOCK_STID, NFS4_DELEG_STID|NFS4_OPEN_STID|NFS4_LOCK_STID,
&s, cstate->minorversion, nn); &s, nn);
if (status) if (status)
goto out; goto out;
status = check_stateid_generation(stateid, &s->sc_stateid, nfsd4_has_session(cstate)); status = check_stateid_generation(stateid, &s->sc_stateid, nfsd4_has_session(cstate));
...@@ -4004,8 +4006,7 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid, ...@@ -4004,8 +4006,7 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
seqid, STATEID_VAL(stateid)); seqid, STATEID_VAL(stateid));
*stpp = NULL; *stpp = NULL;
status = nfsd4_lookup_stateid(stateid, typemask, &s, status = nfsd4_lookup_stateid(cstate, stateid, typemask, &s, nn);
cstate->minorversion, nn);
if (status) if (status)
return status; return status;
stp = openlockstateid(s); stp = openlockstateid(s);
...@@ -4229,8 +4230,7 @@ nfsd4_delegreturn(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ...@@ -4229,8 +4230,7 @@ nfsd4_delegreturn(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
return status; return status;
nfs4_lock_state(); nfs4_lock_state();
status = nfsd4_lookup_stateid(stateid, NFS4_DELEG_STID, &s, status = nfsd4_lookup_stateid(cstate, stateid, NFS4_DELEG_STID, &s, nn);
cstate->minorversion, nn);
if (status) if (status)
goto out; goto out;
dp = delegstateid(s); dp = delegstateid(s);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册