|
@@ -1623,18 +1623,6 @@ static void write_cinfo(__be32 **p, struct nfsd4_change_info *c)
|
|
\
|
|
\
|
|
save = resp->p;
|
|
save = resp->p;
|
|
|
|
|
|
-static bool seqid_mutating_err(__be32 err)
|
|
|
|
-{
|
|
|
|
- /* rfc 3530 section 8.1.5: */
|
|
|
|
- return err != nfserr_stale_clientid &&
|
|
|
|
- err != nfserr_stale_stateid &&
|
|
|
|
- err != nfserr_bad_stateid &&
|
|
|
|
- err != nfserr_bad_seqid &&
|
|
|
|
- err != nfserr_bad_xdr &&
|
|
|
|
- err != nfserr_resource &&
|
|
|
|
- err != nfserr_nofilehandle;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Routine for encoding the result of a "seqid-mutating" NFSv4 operation. This
|
|
* Routine for encoding the result of a "seqid-mutating" NFSv4 operation. This
|
|
* is where sequence id's are incremented, and the replay cache is filled.
|
|
* is where sequence id's are incremented, and the replay cache is filled.
|
|
@@ -1643,7 +1631,7 @@ static bool seqid_mutating_err(__be32 err)
|
|
*/
|
|
*/
|
|
|
|
|
|
#define ENCODE_SEQID_OP_TAIL(stateowner) do { \
|
|
#define ENCODE_SEQID_OP_TAIL(stateowner) do { \
|
|
- if (seqid_mutating_err(nfserr) && stateowner) { \
|
|
|
|
|
|
+ if (seqid_mutating_err(ntohl(nfserr)) && stateowner) { \
|
|
stateowner->so_seqid++; \
|
|
stateowner->so_seqid++; \
|
|
stateowner->so_replay.rp_status = nfserr; \
|
|
stateowner->so_replay.rp_status = nfserr; \
|
|
stateowner->so_replay.rp_buflen = \
|
|
stateowner->so_replay.rp_buflen = \
|