nvme-tcp: stop auth work after tearing down queues in error recovery
authorSagi Grimberg <sagi@grimberg.me>
Sun, 13 Nov 2022 11:24:23 +0000 (13:24 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Feb 2023 11:59:55 +0000 (12:59 +0100)
commite94e1ea596f0e072e9f47acd1782ebfa722f1307
tree601307c6c96c4c9203b5c0aee9c02b04ea074b55
parent513e4b876ec59c4d3b26764101c728a82afc7dfa
nvme-tcp: stop auth work after tearing down queues in error recovery

[ Upstream commit 1f1a4f89562d3b33b6ca4fc8a4f3bd4cd35ab4ea ]

when starting error recovery there might be a authentication work
running, and it involves I/O commands. Given the controller is tearing
down there is no chance for the I/O to complete other than timing out
which may unnecessarily take a full io timeout.

So first tear down the queues, fail/cancel all inflight I/O (including
potentially authentication) and only then stop authentication. This
ensures that failover is not stalled due to blocked authentication I/O.

Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nvme/host/tcp.c