Sagi Grimberg 4c174e6366 nvme-rdma: fix timeout handler
Currently, we have several problems with the timeout
handler:
1. If we timeout on the controller establishment flow, we will hang
because we don't execute the error recovery (and we shouldn't because
the create_ctrl flow needs to fail and cleanup on its own)
2. We might also hang if we get a disconnet on a queue while the
controller is already deleting. This racy flow can cause the controller
disable/shutdown admin command to hang.

We cannot complete a timed out request from the timeout handler without
mutual exclusion from the teardown flow (e.g. nvme_rdma_error_recovery_work).
So we serialize it in the timeout handler and teardown io and admin
queues to guarantee that no one races with us from completing the
request.

Reported-by: Jaesoo Lee <jalee@purestorage.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-01-23 17:16:59 -07:00
..
2019-01-01 15:55:29 -08:00
2018-12-19 09:40:13 +01:00
2018-12-31 17:32:35 -08:00
2018-12-29 08:20:44 -07:00
2018-12-27 10:43:24 -08:00
2018-12-27 10:43:24 -08:00
2018-12-29 13:03:29 -08:00
2019-01-01 15:55:29 -08:00
2018-12-31 17:32:35 -08:00
2019-01-01 15:55:29 -08:00
2018-12-28 20:54:57 -08:00
2018-12-29 13:03:29 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 13:19:59 -08:00
2019-01-01 15:55:29 -08:00
2018-12-29 09:40:40 -08:00
2018-12-25 14:52:50 -08:00
2018-12-31 17:32:35 -08:00
2018-12-28 16:52:18 -08:00
2019-01-01 15:55:29 -08:00
2018-12-28 16:52:18 -08:00
2018-12-29 12:03:17 -08:00
2018-12-28 20:30:00 -08:00
2019-01-23 17:16:59 -07:00
2018-12-29 13:40:29 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 20:54:57 -08:00
2018-12-24 12:06:56 +01:00
2019-01-01 13:24:31 -08:00
2018-12-28 14:48:06 -08:00
2018-12-31 17:32:35 -08:00
2018-12-25 14:43:54 -08:00
2018-12-28 14:48:06 -08:00
2018-12-29 13:03:29 -08:00
2018-12-28 20:54:57 -08:00
2019-01-01 15:55:29 -08:00
2019-01-01 15:55:29 -08:00
2019-01-01 13:16:45 -08:00
2018-12-29 13:40:29 -08:00