[PATCH] nvme-multipath: set nr_zones for zoned namespaces

Damien Le Moal Damien.LeMoal at wdc.com
Sun Feb 7 22:51:18 EST 2021


On 2021/02/08 12:28, Keith Busch wrote:
> On Sun, Feb 07, 2021 at 11:06:36PM +0000, Damien Le Moal wrote:
>> On 2021/02/06 4:50, Keith Busch wrote:
>>> The bio based drivers only require the request_queue's nr_zones is set,
>>> so set this field in the head if the namespace path is zoned.
>>>
>>> Reported-by: Minwoo Im <minwoo.im.dev at gmail.com>
>>> Cc: Damien Le Moal <damien.lemoal at wdc.com>
>>> Signed-off-by: Keith Busch <kbusch at kernel.org>
>>
>> Shouldn't this have a Fixes tag ?
> 
> Probably yes, since this omission does go back to the initial inclusion:
> 
> Fixes: 240e6ee272c07 ("nvme: support for zoned namespaces")
>  
>>> ---
>>>  drivers/nvme/host/multipath.c | 4 ++++
>>>  1 file changed, 4 insertions(+)
>>>
>>> diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
>>> index 1427c9555cef..a1d476e1ac02 100644
>>> --- a/drivers/nvme/host/multipath.c
>>> +++ b/drivers/nvme/host/multipath.c
>>> @@ -677,6 +677,10 @@ void nvme_mpath_add_disk(struct nvme_ns *ns, struct nvme_id_ns *id)
>>>  	if (blk_queue_stable_writes(ns->queue) && ns->head->disk)
>>>  		blk_queue_flag_set(QUEUE_FLAG_STABLE_WRITES,
>>>  				   ns->head->disk->queue);
>>> +#ifdef CONFIG_BLK_DEV_ZONED
>>> +	if (blk_queue_is_zoned(ns->queue) && ns->head->disk)
>>> +		ns->head->disk->queue->nr_zones = ns->queue->nr_zones;
>>> +#endif
>>
>> Is the zone model set already ? I have not checked...
> 
> That's a good question, and we should be safe with the zone namespace's
> zone settings set at this point: nvme_mpath_add_disk() is invoked after
> nvme_update_ns_info().

Hmmm... I see the zone model being set for ns->queue, but nothing for
ns->head->disk->queue... Shoudln't nvme_mpath_add_disk() also set the zoned
model for ns->head->disk->queue ?


-- 
Damien Le Moal
Western Digital Research



More information about the Linux-nvme mailing list