|
@@ -3953,6 +3953,7 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
|
|
{
|
|
{
|
|
__be32 status;
|
|
__be32 status;
|
|
struct nfs4_stid *s;
|
|
struct nfs4_stid *s;
|
|
|
|
+ struct nfs4_ol_stateid *stp = NULL;
|
|
|
|
|
|
dprintk("NFSD: %s: seqid=%d stateid = " STATEID_FMT "\n", __func__,
|
|
dprintk("NFSD: %s: seqid=%d stateid = " STATEID_FMT "\n", __func__,
|
|
seqid, STATEID_VAL(stateid));
|
|
seqid, STATEID_VAL(stateid));
|
|
@@ -3962,11 +3963,14 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
|
|
cstate->minorversion, nn);
|
|
cstate->minorversion, nn);
|
|
if (status)
|
|
if (status)
|
|
return status;
|
|
return status;
|
|
- *stpp = openlockstateid(s);
|
|
|
|
|
|
+ stp = openlockstateid(s);
|
|
if (!nfsd4_has_session(cstate))
|
|
if (!nfsd4_has_session(cstate))
|
|
- cstate->replay_owner = (*stpp)->st_stateowner;
|
|
|
|
|
|
+ cstate->replay_owner = stp->st_stateowner;
|
|
|
|
|
|
- return nfs4_seqid_op_checks(cstate, stateid, seqid, *stpp);
|
|
|
|
|
|
+ status = nfs4_seqid_op_checks(cstate, stateid, seqid, stp);
|
|
|
|
+ if (!status)
|
|
|
|
+ *stpp = stp;
|
|
|
|
+ return status;
|
|
}
|
|
}
|
|
|
|
|
|
static __be32 nfs4_preprocess_confirmed_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
|
|
static __be32 nfs4_preprocess_confirmed_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
|