]> git.baikalelectronics.ru Git - kernel.git/commit
nvme: allow duplicate NSIDs for private namespaces
authorSungup Moon <sungup.moon@samsung.com>
Mon, 14 Mar 2022 11:05:45 +0000 (20:05 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:24:09 +0000 (14:24 +0200)
commitec46696143cb76359784041e95751e6ad9ece14d
tree4e1cfd54bca7952ef685e10651f02d3b1324e40f
parent3acdadae4699e92f14ee00b11bcfb750813a10e2
nvme: allow duplicate NSIDs for private namespaces

commit 74654d2cef7bab0d26f0d81c2778e4fab0dfd33e upstream.

A NVMe subsystem with multiple controller can have private namespaces
that use the same NSID under some conditions:

 "If Namespace Management, ANA Reporting, or NVM Sets are supported, the
  NSIDs shall be unique within the NVM subsystem. If the Namespace
  Management, ANA Reporting, and NVM Sets are not supported, then NSIDs:
   a) for shared namespace shall be unique; and
   b) for private namespace are not required to be unique."

Reference: Section 6.1.6 NSID and Namespace Usage; NVM Express 1.4c spec.

Make sure this specific setup is supported in Linux.

Fixes: 6aeb02d09032 ("nvme: always search for namespace head")
Signed-off-by: Sungup Moon <sungup.moon@samsung.com>
[hch: refactored and fixed the controller vs subsystem based naming
      conflict]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/nvme/host/core.c
drivers/nvme/host/multipath.c
drivers/nvme/host/nvme.h
include/linux/nvme.h