{
        __be32 status;
        struct nfs4_stid *s;
+       struct nfs4_ol_stateid *stp = NULL;
 
        dprintk("NFSD: %s: seqid=%d stateid = " STATEID_FMT "\n", __func__,
                seqid, STATEID_VAL(stateid));
                                      cstate->minorversion, nn);
        if (status)
                return status;
-       *stpp = openlockstateid(s);
+       stp = openlockstateid(s);
        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,