[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <69575290-200e-b4a1-4269-c71e4c2cc37b@huawei.com>
Date: Thu, 28 Jan 2021 17:18:56 +0800
From: Chao Leng <lengchao@...wei.com>
To: Daniel Wagner <dwagner@...e.de>
CC: <linux-nvme@...ts.infradead.org>, Sagi Grimberg <sagi@...mberg.me>,
<linux-kernel@...r.kernel.org>, Jens Axboe <axboe@...com>,
Hannes Reinecke <hare@...e.de>,
Keith Busch <kbusch@...nel.org>, Christoph Hellwig <hch@....de>
Subject: Re: [PATCH v2] nvme-multipath: Early exit if no path is available
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).
> .
>
Powered by blists - more mailing lists