diff options
author | Sagi Grimberg <sagi@grimberg.me> | 2018-07-09 12:49:05 +0300 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2018-07-24 15:55:49 +0200 |
commit | 90140624e8face94207003ac9a9d2a329b309d68 (patch) | |
tree | 9523c06165bd2424eb3f68801f775f20a21821ee | |
parent | 249090f9016b7d68a18fc4c79c42accca18d6961 (diff) | |
download | op-kernel-dev-90140624e8face94207003ac9a9d2a329b309d68.zip op-kernel-dev-90140624e8face94207003ac9a9d2a329b309d68.tar.gz |
nvme-rdma: unquiesce queues when deleting the controller
If the controller is going away, we need to unquiesce the IO queues so
that all pending request can fail gracefully before moving forward with
controller deletion. Do that before we destroy the IO queues so
blk_cleanup_queue won't block in freeze.
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
-rw-r--r-- | drivers/nvme/host/rdma.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c index 2d4a51a..2b683b8 100644 --- a/drivers/nvme/host/rdma.c +++ b/drivers/nvme/host/rdma.c @@ -1759,6 +1759,8 @@ static void nvme_rdma_shutdown_ctrl(struct nvme_rdma_ctrl *ctrl, bool shutdown) nvme_rdma_stop_io_queues(ctrl); blk_mq_tagset_busy_iter(&ctrl->tag_set, nvme_cancel_request, &ctrl->ctrl); + if (shutdown) + nvme_start_queues(&ctrl->ctrl); nvme_rdma_destroy_io_queues(ctrl, shutdown); } |