]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Apr 2019 04:24:16 +0000 (06:24 +0200)
commit 0cb98abb5bd13b9a636bde603d952d722688b428 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfs/nfs4proc.c

index eb55ab6930b55d241aabaeed459282c0a26bdcf8..6d0d94fc243d32f356ff344a7448e0f00639eee7 100644 (file)
@@ -2748,7 +2748,8 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata,
                        nfs4_schedule_stateid_recovery(server, state);
        }
 out:
-       nfs4_sequence_free_slot(&opendata->o_res.seq_res);
+       if (!opendata->cancelled)
+               nfs4_sequence_free_slot(&opendata->o_res.seq_res);
        return ret;
 }