NFSv4.1: Fix a race in nfs4_proc_layoutget
authorTrond Myklebust <trond.myklebust@primarydata.com>
Tue, 27 Jun 2017 21:33:38 +0000 (17:33 -0400)
committerRaspbian kernel package updater <root@raspbian.org>
Sun, 23 Jul 2017 03:04:07 +0000 (03:04 +0000)
commitfabd2a7f31ee8b0d7eb7386b9cfbfc7423fb82d6
tree898c091a9e2034d9d2f3cf482726765a97dfee25
parent8d502cb6ef2dc1b9db959191505fd6348d7fc6fe
NFSv4.1: Fix a race in nfs4_proc_layoutget

commit bd171930e6a3de4f5cffdafbb944e50093dfb59b upstream.

If the task calling layoutget is signalled, then it is possible for the
calls to nfs4_sequence_free_slot() and nfs4_layoutget_prepare() to race,
in which case we leak a slot.
The fix is to move the call to nfs4_sequence_free_slot() into the
nfs4_layoutget_release() so that it gets called at task teardown time.

Fixes: 2e80dbe7ac51 ("NFSv4.1: Close callback races for OPEN, LAYOUTGET...")
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfs/nfs4proc.c