|
@@ -3666,7 +3666,8 @@ nfs4_preprocess_seqid_op(struct nfsd4_compound_state *cstate, u32 seqid,
|
|
|
if (status)
|
|
|
return status;
|
|
|
*stpp = openlockstateid(s);
|
|
|
- cstate->replay_owner = (*stpp)->st_stateowner;
|
|
|
+ if (!nfsd4_has_session(cstate))
|
|
|
+ cstate->replay_owner = (*stpp)->st_stateowner;
|
|
|
|
|
|
return nfs4_seqid_op_checks(cstate, stateid, seqid, *stpp);
|
|
|
}
|
|
@@ -3858,10 +3859,9 @@ nfsd4_close(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
|
|
oo->oo_last_closed_stid = stp;
|
|
|
|
|
|
if (list_empty(&oo->oo_owner.so_stateids)) {
|
|
|
- if (cstate->minorversion) {
|
|
|
+ if (cstate->minorversion)
|
|
|
release_openowner(oo);
|
|
|
- cstate->replay_owner = NULL;
|
|
|
- } else {
|
|
|
+ else {
|
|
|
/*
|
|
|
* In the 4.0 case we need to keep the owners around a
|
|
|
* little while to handle CLOSE replay.
|