On reconnect, the code currently does not freeze the controller before
possibly updating the number hw queues for the controller.
Add the freeze before updating the number of hw queues.  Note: the queues
are already started and remain started through the reconnect.
Signed-off-by: James Smart <james.smart@broadcom.com>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
        if (ret)
                goto out_delete_hw_queues;
 
-       if (prior_ioq_cnt != nr_io_queues)
+       if (prior_ioq_cnt != nr_io_queues) {
                dev_info(ctrl->ctrl.device,
                        "reconnect: revising io queue count from %d to %d\n",
                        prior_ioq_cnt, nr_io_queues);
-       blk_mq_update_nr_hw_queues(&ctrl->tag_set, nr_io_queues);
+               nvme_wait_freeze(&ctrl->ctrl);
+               blk_mq_update_nr_hw_queues(&ctrl->tag_set, nr_io_queues);
+               nvme_unfreeze(&ctrl->ctrl);
+       }
 
        return 0;