Ruozhu Li
104594de27
nvme: fix regression when disconnect a recovering ctrl
...
[ Upstream commit f7f70f4aa0 ]
We encountered a problem that the disconnect command hangs.
After analyzing the log and stack, we found that the triggering
process is as follows:
CPU0 CPU1
nvme_rdma_error_recovery_work
nvme_rdma_teardown_io_queues
nvme_do_delete_ctrl nvme_stop_queues
nvme_remove_namespaces
--clear ctrl->namespaces
nvme_start_queues
--no ns in ctrl->namespaces
nvme_ns_remove return(because ctrl is deleting)
blk_freeze_queue
blk_mq_freeze_queue_wait
--wait for ns to unquiesce to clean infligt IO, hang forever
This problem was not found in older kernels because we will flush
err work in nvme_stop_ctrl before nvme_remove_namespaces.It does not
seem to be modified for functional reasons, the patch can be revert
to solve the problem.
Revert commit 794a4cb3d2 ("nvme: remove the .stop_ctrl callout")
Signed-off-by: Ruozhu Li <liruozhu@huawei.com >
Reviewed-by: Sagi Grimberg <sagi@grimberg.me >
Signed-off-by: Christoph Hellwig <hch@lst.de >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-07-21 21:20:15 +02:00
..
2022-02-16 12:54:30 +01:00
2022-06-09 10:21:23 +02:00
2022-04-08 14:40:02 +02:00
2022-01-27 10:54:06 +01:00
2022-06-22 14:13:14 +02:00
2022-03-23 09:13:27 +01:00
2021-11-18 14:04:24 +01:00
2022-07-12 16:32:18 +02:00
2021-09-15 09:50:45 +02:00
2022-07-07 17:52:22 +02:00
2022-06-06 08:42:43 +02:00
2022-06-14 18:32:34 +02:00
2021-05-26 12:06:55 +02:00
2022-06-29 08:59:54 +02:00
2022-06-22 14:13:20 +02:00
2022-07-07 17:52:23 +02:00
2022-01-27 10:54:08 +01:00
2022-07-21 21:20:14 +02:00
2021-11-18 14:04:05 +01:00
2022-06-09 10:21:17 +02:00
2022-04-08 14:40:16 +02:00
2022-07-07 17:52:18 +02:00
2022-07-12 16:32:23 +02:00
2022-06-29 08:59:48 +02:00
2022-06-09 10:21:02 +02:00
2022-06-14 18:32:43 +02:00
2022-05-12 12:25:32 +02:00
2022-06-14 18:32:34 +02:00
2021-09-30 10:11:04 +02:00
2022-04-08 14:40:23 +02:00
2022-06-29 08:59:50 +02:00
2022-07-21 21:20:09 +02:00
2022-04-08 14:39:50 +02:00
2022-06-09 10:21:02 +02:00
2022-01-27 10:54:12 +01:00
2022-06-22 14:13:16 +02:00
2022-07-07 17:52:20 +02:00
2022-06-14 18:32:32 +02:00
2022-07-12 16:32:22 +02:00
2021-05-14 09:50:05 +02:00
2021-03-04 11:38:21 +01:00
2022-06-29 08:59:52 +02:00
2022-07-07 17:52:17 +02:00
2022-06-22 14:13:14 +02:00
2022-06-14 18:32:47 +02:00
2022-07-12 16:32:18 +02:00
2021-10-06 15:56:01 +02:00
2022-06-22 14:13:18 +02:00
2022-03-16 14:15:57 +01:00
2021-09-15 09:50:36 +02:00
2022-05-09 09:04:56 +02:00
2022-06-09 10:21:18 +02:00
2022-06-09 10:21:18 +02:00
2021-09-30 10:11:00 +02:00
2022-07-07 17:52:16 +02:00
2022-06-09 10:21:25 +02:00
2022-06-29 08:59:54 +02:00
2021-11-18 14:04:07 +01:00
2022-06-09 10:21:18 +02:00
2022-07-12 16:32:22 +02:00
2022-06-29 08:59:45 +02:00
2021-11-18 14:03:51 +01:00
2022-07-15 10:14:00 +02:00
2022-07-21 21:20:12 +02:00
2022-07-21 21:20:14 +02:00
2022-03-08 19:09:32 +01:00
2022-07-07 17:52:15 +02:00
2022-07-21 21:20:15 +02:00
2022-01-27 10:54:22 +01:00
2022-06-09 10:21:03 +02:00
2022-06-09 10:21:18 +02:00
2022-04-13 21:01:03 +02:00
2021-09-18 13:40:34 +02:00
2022-06-22 14:13:20 +02:00
2022-06-14 18:32:30 +02:00
2022-04-27 13:53:55 +02:00
2022-06-14 18:32:32 +02:00
2022-07-12 16:32:20 +02:00
2022-07-21 21:20:14 +02:00
2022-04-13 21:00:57 +02:00
2020-12-30 11:53:53 +01:00
2022-04-13 21:00:55 +02:00
2022-06-14 18:32:31 +02:00
2021-05-26 12:06:52 +02:00
2021-04-14 08:42:12 +02:00
2022-06-09 10:21:07 +02:00
2022-04-08 14:40:26 +02:00
2022-04-27 13:53:52 +02:00
2022-06-14 18:32:32 +02:00
2022-06-14 18:32:33 +02:00
2022-05-18 10:23:44 +02:00
2022-07-21 21:20:14 +02:00
2021-11-26 10:39:12 +01:00
2022-05-18 10:23:47 +02:00
2022-06-29 08:59:54 +02:00
2022-04-08 14:40:24 +02:00
2022-07-21 21:20:03 +02:00
2021-03-04 11:38:40 +01:00
2021-07-14 16:56:21 +02:00
2022-06-22 14:13:18 +02:00
2022-06-09 10:21:01 +02:00
2022-03-02 11:42:47 +01:00
2022-06-09 10:21:30 +02:00
2022-01-27 10:54:14 +01:00
2022-06-29 08:59:44 +02:00
2021-05-26 12:06:52 +02:00
2022-06-29 08:59:51 +02:00
2022-06-09 10:21:29 +02:00
2022-04-08 14:40:02 +02:00
2022-06-14 18:32:45 +02:00
2022-07-12 16:32:18 +02:00
2021-05-11 14:47:11 +02:00
2022-07-21 21:20:13 +02:00
2021-07-14 16:56:41 +02:00
2022-04-13 21:01:01 +02:00
2022-06-14 18:32:43 +02:00
2022-07-07 17:52:20 +02:00