| .. | .. |
|---|
| 989 | 989 | goto out_cleanup_connect_q; |
|---|
| 990 | 990 | |
|---|
| 991 | 991 | if (!new) { |
|---|
| 992 | + nvme_start_freeze(&ctrl->ctrl); |
|---|
| 992 | 993 | nvme_start_queues(&ctrl->ctrl); |
|---|
| 993 | 994 | if (!nvme_wait_freeze_timeout(&ctrl->ctrl, NVME_IO_TIMEOUT)) { |
|---|
| 994 | 995 | /* |
|---|
| .. | .. |
|---|
| 997 | 998 | * to be safe. |
|---|
| 998 | 999 | */ |
|---|
| 999 | 1000 | ret = -ENODEV; |
|---|
| 1001 | + nvme_unfreeze(&ctrl->ctrl); |
|---|
| 1000 | 1002 | goto out_wait_freeze_timed_out; |
|---|
| 1001 | 1003 | } |
|---|
| 1002 | 1004 | blk_mq_update_nr_hw_queues(ctrl->ctrl.tagset, |
|---|
| .. | .. |
|---|
| 1042 | 1044 | bool remove) |
|---|
| 1043 | 1045 | { |
|---|
| 1044 | 1046 | if (ctrl->ctrl.queue_count > 1) { |
|---|
| 1045 | | - nvme_start_freeze(&ctrl->ctrl); |
|---|
| 1046 | 1047 | nvme_stop_queues(&ctrl->ctrl); |
|---|
| 1047 | 1048 | nvme_sync_io_queues(&ctrl->ctrl); |
|---|
| 1048 | 1049 | nvme_rdma_stop_io_queues(ctrl); |
|---|