if (ctrl->ctrl.queue_count == 1)
                return 0;
 
-       ret = nvme_fc_create_hw_io_queues(ctrl, ctrl->ctrl.sqsize + 1);
-       if (ret)
-               goto out_free_io_queues;
-
-       ret = nvme_fc_connect_io_queues(ctrl, ctrl->ctrl.sqsize + 1);
-       if (ret)
-               goto out_delete_hw_queues;
-
        if (prior_ioq_cnt != nr_io_queues) {
                dev_info(ctrl->ctrl.device,
                        "reconnect: revising io queue count from %d to %d\n",
                nvme_unfreeze(&ctrl->ctrl);
        }
 
+       ret = nvme_fc_create_hw_io_queues(ctrl, ctrl->ctrl.sqsize + 1);
+       if (ret)
+               goto out_free_io_queues;
+
+       ret = nvme_fc_connect_io_queues(ctrl, ctrl->ctrl.sqsize + 1);
+       if (ret)
+               goto out_delete_hw_queues;
+
        return 0;
 
 out_delete_hw_queues: