if (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)) {
dprintk("NFSD: preprocess_seqid_op: stateowner not"
" confirmed yet!\n");
oc->oc_seqid, &oc->oc_req_stateid,
CONFIRM | OPEN_STATE, &stp);
if (status)
- goto out;
-
+ goto out;
sop = stp->st_stateowner;
+ status = nfserr_bad_stateid;
+ if (sop->so_confirmed)
+ goto out;
sop->so_confirmed = 1;
update_stateid(&stp->st_stateid);
memcpy(&oc->oc_resp_stateid, &stp->st_stateid, sizeof(stateid_t));
__func__, oc->oc_seqid, STATEID_VAL(&stp->st_stateid));
nfsd4_create_clid_dir(sop->so_client);
+ status = nfs_ok;
out:
if (!cstate->replay_owner)
nfs4_unlock_state();