[PATCH] nvme: warn only once for legacy uuid attribute

Keith Busch kbusch at meta.com
Wed Jul 12 07:59:21 PDT 2023


From: Keith Busch <kbusch at kernel.org>

Report the legacy fallback behavior for uuid attributes just once
instead of logging repeated warnings for the same condition every time
the attribute is read. The old behavior is too spamy on the kernel logs.

Cc: Johannes Thumshirn <johannes.thumshirn at wdc.com>
Reported-by: Breno Leitao <leitao at debian.org>
Signed-off-by: Keith Busch <kbusch at kernel.org>
---
 drivers/nvme/host/core.c  | 7 +++++++
 drivers/nvme/host/sysfs.c | 8 +++-----
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 47d7ba2827ff2..6984205b3514f 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -3597,6 +3597,13 @@ static void nvme_alloc_ns(struct nvme_ctrl *ctrl, struct nvme_ns_info *info)
 	nvme_mpath_add_disk(ns, info->anagrpid);
 	nvme_fault_inject_init(&ns->fault_inject, ns->disk->disk_name);
 
+
+	if (uuid_is_null(&info->ids.uuid) &&
+	    memchr_inv(info->ids.nguid, 0, sizeof(info->ids.nguid))) {
+		dev_warn(ctrl->device,
+			"No UUID available providing old NGUID\n");
+	}
+
 	return;
 
  out_cleanup_ns_from_list:
diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c
index 45e91811f905c..0c636d873e058 100644
--- a/drivers/nvme/host/sysfs.c
+++ b/drivers/nvme/host/sysfs.c
@@ -88,14 +88,12 @@ static ssize_t uuid_show(struct device *dev, struct device_attribute *attr,
 {
 	struct nvme_ns_ids *ids = &dev_to_ns_head(dev)->ids;
 
-	/* For backward compatibility expose the NGUID to userspace if
+	/*
+	 * For backward compatibility expose the NGUID to userspace if
 	 * we have no UUID set
 	 */
-	if (uuid_is_null(&ids->uuid)) {
-		dev_warn_ratelimited(dev,
-			"No UUID available providing old NGUID\n");
+	if (uuid_is_null(&ids->uuid))
 		return sysfs_emit(buf, "%pU\n", ids->nguid);
-	}
 	return sysfs_emit(buf, "%pU\n", &ids->uuid);
 }
 static DEVICE_ATTR_RO(uuid);
-- 
2.34.1




More information about the Linux-nvme mailing list