On 2021/1/28 15:58, Daniel Wagner wrote:
On Thu, Jan 28, 2021 at 09:31:30AM +0800, Chao Leng wrote:
--- a/drivers/nvme/host/multipath.c
+++ b/drivers/nvme/host/multipath.c
@@ -221,7 +221,7 @@ static struct nvme_ns *nvme_round_robin_path(struct 
nvme_ns_head *head,
        }
        for (ns = nvme_next_ns(head, old);
-            ns != old;
+            ns && ns != old;
nvme_round_robin_path just be called when !"old".
nvme_next_ns should not return NULL when !"old".
It seems unnecessary to add checking "ns".

The problem is when we enter nvme_round_robin_path() and there is no
path available. In this case the initialization ns = nvme_next_ns(head,
old) could return a NULL pointer."old" should not be NULL, so there is at least one path 
that is "old".
It is impossible to return NULL for nvme_next_ns(head, old).
.

Reply via email to