nfsd4: move double-confirm test to open_confirm
I don't see the point of having this check in nfs4_preprocess_seqid_op() when it's only needed by the one caller. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
77eaae8d44
commit
68b66e8270
1 changed files with 5 additions and 7 deletions
|
@ -3434,11 +3434,6 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
|
||||||
if (status)
|
if (status)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
if (sop->so_confirmed && flags & CONFIRM) {
|
|
||||||
dprintk("NFSD: preprocess_seqid_op: expected"
|
|
||||||
" unconfirmed stateowner!\n");
|
|
||||||
return nfserr_bad_stateid;
|
|
||||||
}
|
|
||||||
if (!sop->so_confirmed && !(flags & CONFIRM)) {
|
if (!sop->so_confirmed && !(flags & CONFIRM)) {
|
||||||
dprintk("NFSD: preprocess_seqid_op: stateowner not"
|
dprintk("NFSD: preprocess_seqid_op: stateowner not"
|
||||||
" confirmed yet!\n");
|
" confirmed yet!\n");
|
||||||
|
@ -3474,8 +3469,10 @@ nfsd4_open_confirm(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
||||||
CONFIRM | OPEN_STATE, &stp);
|
CONFIRM | OPEN_STATE, &stp);
|
||||||
if (status)
|
if (status)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
sop = stp->st_stateowner;
|
sop = stp->st_stateowner;
|
||||||
|
status = nfserr_bad_stateid;
|
||||||
|
if (sop->so_confirmed)
|
||||||
|
goto out;
|
||||||
sop->so_confirmed = 1;
|
sop->so_confirmed = 1;
|
||||||
update_stateid(&stp->st_stateid);
|
update_stateid(&stp->st_stateid);
|
||||||
memcpy(&oc->oc_resp_stateid, &stp->st_stateid, sizeof(stateid_t));
|
memcpy(&oc->oc_resp_stateid, &stp->st_stateid, sizeof(stateid_t));
|
||||||
|
@ -3483,6 +3480,7 @@ nfsd4_open_confirm(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
||||||
__func__, oc->oc_seqid, STATEID_VAL(&stp->st_stateid));
|
__func__, oc->oc_seqid, STATEID_VAL(&stp->st_stateid));
|
||||||
|
|
||||||
nfsd4_create_clid_dir(sop->so_client);
|
nfsd4_create_clid_dir(sop->so_client);
|
||||||
|
status = nfs_ok;
|
||||||
out:
|
out:
|
||||||
if (!cstate->replay_owner)
|
if (!cstate->replay_owner)
|
||||||
nfs4_unlock_state();
|
nfs4_unlock_state();
|
||||||
|
|
Loading…
Add table
Reference in a new issue