NFSv4.1 don't free interrupted slot on open
authorOlga Kornievskaia <kolga@netapp.com>
Tue, 19 Mar 2019 16:12:13 +0000 (12:12 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 19 Mar 2019 17:17:49 +0000 (13:17 -0400)
Allow the async rpc task for finish and update the open state if needed,
then free the slot. Otherwise, the async rpc unable to decode the reply.

Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Fixes: ae55e59da0e4 ("pnfs: Don't release the sequence slot...")
Cc: stable@vger.kernel.org # v4.18+
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/nfs4proc.c

index 6d2812a3928799854970a8ddba9fee8de944eb2e..741ff8c9c6ed3f7cda214ec0157eb6d9461ebdca 100644 (file)
@@ -2933,7 +2933,8 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
        }
 
 out:
-       nfs4_sequence_free_slot(&opendata->o_res.seq_res);
+       if (!opendata->cancelled)
+               nfs4_sequence_free_slot(&opendata->o_res.seq_res);
        return ret;
 }