[PATCH 2/2] nvme-rdma: Fix possible hang when failing to set io queues
Chao Leng
lengchao at huawei.com
Tue Mar 16 01:33:58 GMT 2021
Reviewed-by: Chao Leng <lengchao at huawei.com>
On 2021/3/16 5:04, Sagi Grimberg wrote:
> We only setup io queues for nvme controllers, and it makes
> absolutely no sense to allow a controller (re)connect without
> any I/O queues. If we happen to fail setting the queue count
> for any reason, we should not allow this to be a successful
> reconnect as I/O has no chance in going through. Instead
> just fail and schedule another reconnect.
>
> Reported-by: Chao Leng <lengchao at huawei.com>
> Fixes: 711023071960 ("nvme-rdma: add a NVMe over Fabrics RDMA host driver")
> Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
> ---
> drivers/nvme/host/rdma.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
> index 53ac4d7442ba..eb093ea5ffa1 100644
> --- a/drivers/nvme/host/rdma.c
> +++ b/drivers/nvme/host/rdma.c
> @@ -736,8 +736,11 @@ static int nvme_rdma_alloc_io_queues(struct nvme_rdma_ctrl *ctrl)
> return ret;
>
> ctrl->ctrl.queue_count = nr_io_queues + 1;
> - if (ctrl->ctrl.queue_count < 2)
> - return 0;
> + if (ctrl->ctrl.queue_count < 2) {
> + dev_err(ctrl->ctrl.device,
> + "unable to set any I/O queues\n");
> + return -ENOMEM;
> + }
>
> dev_info(ctrl->ctrl.device,
> "creating %d I/O queues.\n", nr_io_queues);
>
More information about the Linux-nvme
mailing list