Thread (27 messages) 27 messages, 5 authors, 2021-02-02

Re: [PATCH v2] nvme-multipath: Early exit if no path is available

From: Hannes Reinecke <hare@suse.de>
Date: 2021-01-28 09:32:01
Also in: lkml

On 1/28/21 10:18 AM, Chao Leng wrote:

On 2021/1/28 15:58, Daniel Wagner wrote:
quoted
On Thu, Jan 28, 2021 at 09:31:30AM +0800, Chao Leng wrote:
quoted
quoted
--- 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).
No. list_next_or_null_rcu()/list_first_or_null_rcu() will return NULL 
when then end of the list is reached.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                Kernel Storage Architect
hare@suse.de                              +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help