|
@@ -1749,16 +1749,16 @@ nvme_fc_nvme_ctrl_freed(struct nvme_ctrl *nctrl)
|
|
|
static void
|
|
|
nvme_fc_error_recovery(struct nvme_fc_ctrl *ctrl, char *errmsg)
|
|
|
{
|
|
|
+ /* only proceed if in LIVE state - e.g. on first error */
|
|
|
+ if (ctrl->ctrl.state != NVME_CTRL_LIVE)
|
|
|
+ return;
|
|
|
+
|
|
|
dev_warn(ctrl->ctrl.device,
|
|
|
"NVME-FC{%d}: transport association error detected: %s\n",
|
|
|
ctrl->cnum, errmsg);
|
|
|
dev_warn(ctrl->ctrl.device,
|
|
|
"NVME-FC{%d}: resetting controller\n", ctrl->cnum);
|
|
|
|
|
|
- /* stop the queues on error, cleanup is in reset thread */
|
|
|
- if (ctrl->queue_count > 1)
|
|
|
- nvme_stop_queues(&ctrl->ctrl);
|
|
|
-
|
|
|
if (!nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_RECONNECTING)) {
|
|
|
dev_err(ctrl->ctrl.device,
|
|
|
"NVME-FC{%d}: error_recovery: Couldn't change state "
|