nvme: fix block device naming collision
authorIsrael Rukshin <israelr@nvidia.com>
Thu, 14 Jul 2022 12:42:10 +0000 (12:42 +0000)
committerChristoph Hellwig <hch@lst.de>
Thu, 14 Jul 2022 14:35:25 +0000 (16:35 +0200)
commit6961b5e02876b3b47f030a1f1ee8fd3e631ac270
treef49e504cba085c2c50d241abc54d573c413294d3
parent081f5e753c9c4cd1dd86000bcc7f5fe14cbdcab0
nvme: fix block device naming collision

The issue exists when multipath is enabled and the namespace is
shared, but all the other controller checks at nvme_is_unique_nsid()
are false. The reason for this issue is that nvme_is_unique_nsid()
returns false when is called from nvme_mpath_alloc_disk() due to an
uninitialized value of head->shared. The patch fixes it by setting
head->shared before nvme_mpath_alloc_disk() is called.

Fixes: 5974ea7ce0f9 ("nvme: allow duplicate NSIDs for private namespaces")
Signed-off-by: Israel Rukshin <israelr@nvidia.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/core.c