nvme: pad fake subsys NQN vid and ssvid with zeros
authorKeith Busch <keith.busch@intel.com>
Tue, 8 Jan 2019 16:37:43 +0000 (09:37 -0700)
committerChristoph Hellwig <hch@lst.de>
Wed, 9 Jan 2019 18:47:06 +0000 (13:47 -0500)
We need to preserve the leading zeros in the vid and ssvid when generating
a unique NQN. Truncating these may lead to naming collisions.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/core.c

index 08f2c92602f4676636f2145825f949c37908fdf4..f81fde164d3735444833fc88daeab551606a1363 100644 (file)
@@ -2184,7 +2184,7 @@ static void nvme_init_subnqn(struct nvme_subsystem *subsys, struct nvme_ctrl *ct
 
        /* Generate a "fake" NQN per Figure 254 in NVMe 1.3 + ECN 001 */
        off = snprintf(subsys->subnqn, NVMF_NQN_SIZE,
-                       "nqn.2014.08.org.nvmexpress:%4x%4x",
+                       "nqn.2014.08.org.nvmexpress:%04x%04x",
                        le16_to_cpu(id->vid), le16_to_cpu(id->ssvid));
        memcpy(subsys->subnqn + off, id->sn, sizeof(id->sn));
        off += sizeof(id->sn);