Patch "nvme-rdma: don't update queue count when failing to set io queues" has been added to the 5.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    nvme-rdma: don't update queue count when failing to set io queues

to the 5.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     nvme-rdma-don-t-update-queue-count-when-failing-to-s.patch
and it can be found in the queue-5.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit cf2b1ac926336d7792da4ab86592f4ffa976794a
Author: Ruozhu Li <liruozhu@xxxxxxxxxx>
Date:   Wed Jul 28 17:41:20 2021 +0800

    nvme-rdma: don't update queue count when failing to set io queues
    
    [ Upstream commit 85032874f80ba17bf187de1d14d9603bf3f582b8 ]
    
    We update ctrl->queue_count and schedule another reconnect when io queue
    count is zero.But we will never try to create any io queue in next reco-
    nnection, because ctrl->queue_count already set to zero.We will end up
    having an admin-only session in Live state, which is exactly what we try
    to avoid in the original patch.
    Update ctrl->queue_count after queue_count zero checking to fix it.
    
    Signed-off-by: Ruozhu Li <liruozhu@xxxxxxxxxx>
    Reviewed-by: Sagi Grimberg <sagi@xxxxxxxxxxx>
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index 7f6b3a991501..3bd9cbc80246 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/nvme/host/rdma.c
@@ -735,13 +735,13 @@ static int nvme_rdma_alloc_io_queues(struct nvme_rdma_ctrl *ctrl)
 	if (ret)
 		return ret;
 
-	ctrl->ctrl.queue_count = nr_io_queues + 1;
-	if (ctrl->ctrl.queue_count < 2) {
+	if (nr_io_queues == 0) {
 		dev_err(ctrl->ctrl.device,
 			"unable to set any I/O queues\n");
 		return -ENOMEM;
 	}
 
+	ctrl->ctrl.queue_count = nr_io_queues + 1;
 	dev_info(ctrl->ctrl.device,
 		"creating %d I/O queues.\n", nr_io_queues);
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux