aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2018-06-09 12:43:06 -0400
committerTrond Myklebust <trond.myklebust@hammerspace.com>2018-06-09 12:56:30 -0400
commitfc40724fc6731d90cc7fb6d62d66135f85a33dd2 (patch)
tree791a9c413993091ee07d589e43659ab284c19ae0
parentce5624f7e6675ae0425f0041bbad703ea41c784c (diff)
NFSv4: Revert commit 5f83d86cf531d ("NFSv4.x: Fix wraparound issues..")
The correct behaviour for NFSv4 sequence IDs is to wrap around to the value 0 after 0xffffffff. See https://tools.ietf.org/html/rfc5661#section-2.10.6.1 Fixes: 5f83d86cf531d ("NFSv4.x: Fix wraparound issues when validing...") Cc: stable@vger.kernel.org # 4.6+ Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
-rw-r--r--fs/nfs/callback_proc.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
index 3a49bb19ef07..ee81031cab29 100644
--- a/fs/nfs/callback_proc.c
+++ b/fs/nfs/callback_proc.c
@@ -428,11 +428,8 @@ validate_seqid(const struct nfs4_slot_table *tbl, const struct nfs4_slot *slot,
428 return htonl(NFS4ERR_SEQ_FALSE_RETRY); 428 return htonl(NFS4ERR_SEQ_FALSE_RETRY);
429 } 429 }
430 430
431 /* Wraparound */ 431 /* Note: wraparound relies on seq_nr being of type u32 */
432 if (unlikely(slot->seq_nr == 0xFFFFFFFFU)) { 432 if (likely(args->csa_sequenceid == slot->seq_nr + 1))
433 if (args->csa_sequenceid == 1)
434 return htonl(NFS4_OK);
435 } else if (likely(args->csa_sequenceid == slot->seq_nr + 1))
436 return htonl(NFS4_OK); 433 return htonl(NFS4_OK);
437 434
438 /* Misordered request */ 435 /* Misordered request */