From: NeilBrown <neilb@cse.unsw.edu.au>

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 <bfields@citi.umich.edu>
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 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;
_