diff options
| -rw-r--r-- | drivers/nvme/host/rdma.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c index 37af56596be6..2a0bba7f50cf 100644 --- a/drivers/nvme/host/rdma.c +++ b/drivers/nvme/host/rdma.c | |||
| @@ -974,12 +974,18 @@ static void nvme_rdma_error_recovery_work(struct work_struct *work) | |||
| 974 | blk_mq_unquiesce_queue(ctrl->ctrl.admin_q); | 974 | blk_mq_unquiesce_queue(ctrl->ctrl.admin_q); |
| 975 | nvme_start_queues(&ctrl->ctrl); | 975 | nvme_start_queues(&ctrl->ctrl); |
| 976 | 976 | ||
| 977 | if (!nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_RECONNECTING)) { | ||
| 978 | /* state change failure should never happen */ | ||
| 979 | WARN_ON_ONCE(1); | ||
| 980 | return; | ||
| 981 | } | ||
| 982 | |||
| 977 | nvme_rdma_reconnect_or_remove(ctrl); | 983 | nvme_rdma_reconnect_or_remove(ctrl); |
| 978 | } | 984 | } |
| 979 | 985 | ||
| 980 | static void nvme_rdma_error_recovery(struct nvme_rdma_ctrl *ctrl) | 986 | static void nvme_rdma_error_recovery(struct nvme_rdma_ctrl *ctrl) |
| 981 | { | 987 | { |
| 982 | if (!nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_RECONNECTING)) | 988 | if (!nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_RESETTING)) |
| 983 | return; | 989 | return; |
| 984 | 990 | ||
| 985 | queue_work(nvme_wq, &ctrl->err_work); | 991 | queue_work(nvme_wq, &ctrl->err_work); |
| @@ -1753,6 +1759,12 @@ static void nvme_rdma_reset_ctrl_work(struct work_struct *work) | |||
| 1753 | nvme_stop_ctrl(&ctrl->ctrl); | 1759 | nvme_stop_ctrl(&ctrl->ctrl); |
| 1754 | nvme_rdma_shutdown_ctrl(ctrl, false); | 1760 | nvme_rdma_shutdown_ctrl(ctrl, false); |
| 1755 | 1761 | ||
| 1762 | if (!nvme_change_ctrl_state(&ctrl->ctrl, NVME_CTRL_RECONNECTING)) { | ||
| 1763 | /* state change failure should never happen */ | ||
| 1764 | WARN_ON_ONCE(1); | ||
| 1765 | return; | ||
| 1766 | } | ||
| 1767 | |||
| 1756 | ret = nvme_rdma_configure_admin_queue(ctrl, false); | 1768 | ret = nvme_rdma_configure_admin_queue(ctrl, false); |
| 1757 | if (ret) | 1769 | if (ret) |
| 1758 | goto out_fail; | 1770 | goto out_fail; |
