NFSv4: Ensure that the state manager exits the loop on SIGKILL
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 5 Nov 2018 17:17:01 +0000 (12:17 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 6 Nov 2019 12:05:29 +0000 (13:05 +0100)
[ Upstream commit a1aa09be21fa344d1f5585aab8164bfae55f57e3 ]

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/nfs/nfs4state.c

index c36ef75..b3086e9 100644 (file)
@@ -2613,7 +2613,7 @@ static void nfs4_state_manager(struct nfs_client *clp)
                        return;
                if (test_and_set_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) != 0)
                        return;
-       } while (refcount_read(&clp->cl_count) > 1);
+       } while (refcount_read(&clp->cl_count) > 1 && !signalled());
        goto out_drain;
 
 out_error: