From: NeilBrown Add some comments on the use of so_seqid, in an attempt to avoid some of the confusion outlined in the previous patch.... Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton --- fs/nfsd/nfs4xdr.c | 8 ++++---- include/linux/nfsd/state.h | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff -puN fs/nfsd/nfs4xdr.c~nfsd4-seqid-comments fs/nfsd/nfs4xdr.c --- 25/fs/nfsd/nfs4xdr.c~nfsd4-seqid-comments Wed Jul 6 13:08:57 2005 +++ 25-akpm/fs/nfsd/nfs4xdr.c Wed Jul 6 13:08:57 2005 @@ -1210,10 +1210,10 @@ nfsd4_decode_compound(struct nfsd4_compo save = resp->p; /* - * Routine for encoding the result of a - * "seqid-mutating" NFSv4 operation. This is - * where seqids are incremented, and the - * replay cache is filled. + * 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. + * Note that we increment sequence id's here, at the last moment, so we're sure + * we know whether the error to be returned is a sequence id mutating error. */ #define ENCODE_SEQID_OP_TAIL(stateowner) do { \ diff -puN include/linux/nfsd/state.h~nfsd4-seqid-comments include/linux/nfsd/state.h --- 25/include/linux/nfsd/state.h~nfsd4-seqid-comments Wed Jul 6 13:08:57 2005 +++ 25-akpm/include/linux/nfsd/state.h Wed Jul 6 13:08:57 2005 @@ -203,7 +203,9 @@ struct nfs4_stateowner { int so_is_open_owner; /* 1=openowner,0=lockowner */ u32 so_id; struct nfs4_client * so_client; - u32 so_seqid; + /* after increment in ENCODE_SEQID_OP_TAIL, represents the next + * sequence id expected from the client: */ + u32 so_seqid; struct xdr_netobj so_owner; /* open owner name */ int so_confirmed; /* successful OPEN_CONFIRM? */ struct nfs4_replay so_replay; _