浏览代码

nvme-fc: release io queues to allow fast fail

Rather than leaving io queues quiesced after tearing down an association,
restart them. This allows ios to be replayed, with fastfail ios terminating
and non-fastfail getting into loops of retry.

This follows rdma's lead.

Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Sagi Grimberg <sagi@grimber.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
James Smart 7 年之前
父节点
当前提交
02d62a8bc4
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      drivers/nvme/host/fc.c

+ 3 - 3
drivers/nvme/host/fc.c

@@ -2790,6 +2790,9 @@ nvme_fc_delete_association(struct nvme_fc_ctrl *ctrl)
 	/* re-enable the admin_q so anything new can fast fail */
 	/* re-enable the admin_q so anything new can fast fail */
 	blk_mq_unquiesce_queue(ctrl->ctrl.admin_q);
 	blk_mq_unquiesce_queue(ctrl->ctrl.admin_q);
 
 
+	/* resume the io queues so that things will fast fail */
+	nvme_start_queues(&ctrl->ctrl);
+
 	nvme_fc_ctlr_inactive_on_rport(ctrl);
 	nvme_fc_ctlr_inactive_on_rport(ctrl);
 }
 }
 
 
@@ -2804,9 +2807,6 @@ nvme_fc_delete_ctrl(struct nvme_ctrl *nctrl)
 	 * waiting for io to terminate
 	 * waiting for io to terminate
 	 */
 	 */
 	nvme_fc_delete_association(ctrl);
 	nvme_fc_delete_association(ctrl);
-
-	/* resume the io queues so that things will fast fail */
-	nvme_start_queues(nctrl);
 }
 }
 
 
 static void
 static void