diff options
Diffstat (limited to 'fs/nfsd/nfs4xdr.c')
-rw-r--r-- | fs/nfsd/nfs4xdr.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c index 91fb171d2ace..4c4146350236 100644 --- a/fs/nfsd/nfs4xdr.c +++ b/fs/nfsd/nfs4xdr.c | |||
@@ -1210,16 +1210,15 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp) | |||
1210 | save = resp->p; | 1210 | save = resp->p; |
1211 | 1211 | ||
1212 | /* | 1212 | /* |
1213 | * Routine for encoding the result of a | 1213 | * Routine for encoding the result of a "seqid-mutating" NFSv4 operation. This |
1214 | * "seqid-mutating" NFSv4 operation. This is | 1214 | * is where sequence id's are incremented, and the replay cache is filled. |
1215 | * where seqids are incremented, and the | 1215 | * Note that we increment sequence id's here, at the last moment, so we're sure |
1216 | * replay cache is filled. | 1216 | * we know whether the error to be returned is a sequence id mutating error. |
1217 | */ | 1217 | */ |
1218 | 1218 | ||
1219 | #define ENCODE_SEQID_OP_TAIL(stateowner) do { \ | 1219 | #define ENCODE_SEQID_OP_TAIL(stateowner) do { \ |
1220 | if (seqid_mutating_err(nfserr) && stateowner) { \ | 1220 | if (seqid_mutating_err(nfserr) && stateowner) { \ |
1221 | if (stateowner->so_confirmed) \ | 1221 | stateowner->so_seqid++; \ |
1222 | stateowner->so_seqid++; \ | ||
1223 | stateowner->so_replay.rp_status = nfserr; \ | 1222 | stateowner->so_replay.rp_status = nfserr; \ |
1224 | stateowner->so_replay.rp_buflen = \ | 1223 | stateowner->so_replay.rp_buflen = \ |
1225 | (((char *)(resp)->p - (char *)save)); \ | 1224 | (((char *)(resp)->p - (char *)save)); \ |
@@ -1367,9 +1366,9 @@ nfsd4_encode_fattr(struct svc_fh *fhp, struct svc_export *exp, | |||
1367 | if ((buflen -= 4) < 0) | 1366 | if ((buflen -= 4) < 0) |
1368 | goto out_resource; | 1367 | goto out_resource; |
1369 | if (exp->ex_flags & NFSEXP_NOSUBTREECHECK) | 1368 | if (exp->ex_flags & NFSEXP_NOSUBTREECHECK) |
1370 | WRITE32(NFS4_FH_VOLATILE_ANY); | 1369 | WRITE32(NFS4_FH_PERSISTENT); |
1371 | else | 1370 | else |
1372 | WRITE32(NFS4_FH_VOLATILE_ANY|NFS4_FH_VOL_RENAME); | 1371 | WRITE32(NFS4_FH_PERSISTENT|NFS4_FH_VOL_RENAME); |
1373 | } | 1372 | } |
1374 | if (bmval0 & FATTR4_WORD0_CHANGE) { | 1373 | if (bmval0 & FATTR4_WORD0_CHANGE) { |
1375 | /* | 1374 | /* |