|
@@ -670,11 +670,10 @@ out_free_queues:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-static void nvme_rdma_free_tagset(struct nvme_ctrl *nctrl, bool admin)
|
|
|
+static void nvme_rdma_free_tagset(struct nvme_ctrl *nctrl,
|
|
|
+ struct blk_mq_tag_set *set)
|
|
|
{
|
|
|
struct nvme_rdma_ctrl *ctrl = to_rdma_ctrl(nctrl);
|
|
|
- struct blk_mq_tag_set *set = admin ?
|
|
|
- &ctrl->admin_tag_set : &ctrl->tag_set;
|
|
|
|
|
|
blk_mq_free_tag_set(set);
|
|
|
nvme_rdma_dev_put(ctrl->device);
|
|
@@ -744,7 +743,7 @@ static void nvme_rdma_destroy_admin_queue(struct nvme_rdma_ctrl *ctrl,
|
|
|
nvme_rdma_stop_queue(&ctrl->queues[0]);
|
|
|
if (remove) {
|
|
|
blk_cleanup_queue(ctrl->ctrl.admin_q);
|
|
|
- nvme_rdma_free_tagset(&ctrl->ctrl, true);
|
|
|
+ nvme_rdma_free_tagset(&ctrl->ctrl, ctrl->ctrl.admin_tagset);
|
|
|
}
|
|
|
nvme_rdma_free_queue(&ctrl->queues[0]);
|
|
|
}
|
|
@@ -818,7 +817,7 @@ out_cleanup_queue:
|
|
|
blk_cleanup_queue(ctrl->ctrl.admin_q);
|
|
|
out_free_tagset:
|
|
|
if (new)
|
|
|
- nvme_rdma_free_tagset(&ctrl->ctrl, true);
|
|
|
+ nvme_rdma_free_tagset(&ctrl->ctrl, ctrl->ctrl.admin_tagset);
|
|
|
out_free_queue:
|
|
|
nvme_rdma_free_queue(&ctrl->queues[0]);
|
|
|
return error;
|
|
@@ -830,7 +829,7 @@ static void nvme_rdma_destroy_io_queues(struct nvme_rdma_ctrl *ctrl,
|
|
|
nvme_rdma_stop_io_queues(ctrl);
|
|
|
if (remove) {
|
|
|
blk_cleanup_queue(ctrl->ctrl.connect_q);
|
|
|
- nvme_rdma_free_tagset(&ctrl->ctrl, false);
|
|
|
+ nvme_rdma_free_tagset(&ctrl->ctrl, ctrl->ctrl.tagset);
|
|
|
}
|
|
|
nvme_rdma_free_io_queues(ctrl);
|
|
|
}
|
|
@@ -873,7 +872,7 @@ out_cleanup_connect_q:
|
|
|
blk_cleanup_queue(ctrl->ctrl.connect_q);
|
|
|
out_free_tag_set:
|
|
|
if (new)
|
|
|
- nvme_rdma_free_tagset(&ctrl->ctrl, false);
|
|
|
+ nvme_rdma_free_tagset(&ctrl->ctrl, ctrl->ctrl.tagset);
|
|
|
out_free_io_queues:
|
|
|
nvme_rdma_free_io_queues(ctrl);
|
|
|
return ret;
|