NFSv4.1: Fix regression in callback retry handling
authorFred Isaman <fred.isaman@gmail.com>
Tue, 27 Sep 2016 19:37:11 +0000 (15:37 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 1 Dec 2016 22:21:38 +0000 (17:21 -0500)
When initializing a freshly created slot for the calllback channel,
the seq_nr needs to be 0, not 1.  Otherwise validate_seqid
and nfs4_slot_wait_on_seqid get confused and believe that the
mpty slot corresponds to a previously sent reply.

Signed-off-by: Fred Isaman <fred.isaman@gmail.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/nfs4session.c

index a61350f75c741d734475cfa38903118d673b76aa..769b85655c4bac073160bb5588765696060cde52 100644 (file)
@@ -169,7 +169,7 @@ bool nfs4_try_to_lock_slot(struct nfs4_slot_table *tbl, struct nfs4_slot *slot)
 struct nfs4_slot *nfs4_lookup_slot(struct nfs4_slot_table *tbl, u32 slotid)
 {
        if (slotid <= tbl->max_slotid)
-               return nfs4_find_or_create_slot(tbl, slotid, 1, GFP_NOWAIT);
+               return nfs4_find_or_create_slot(tbl, slotid, 0, GFP_NOWAIT);
        return ERR_PTR(-E2BIG);
 }