summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Garry <john.g.garry@oracle.com>2026-06-30 10:27:17 +0000
committerKeith Busch <kbusch@kernel.org>2026-07-06 11:38:07 -0700
commitdd516cd7624648c71d338d99368587f10ecc9f0b (patch)
tree809547e0d6f1d573f24a30e1559249a78e248c49
parent0114dd303b373522dea06053aabae34bdd33a7c4 (diff)
downloadlinux-dd516cd7624648c71d338d99368587f10ecc9f0b.tar.gz
linux-dd516cd7624648c71d338d99368587f10ecc9f0b.zip
nvme: handle positive error codes in nuse_show()
Function __nvme_submit_sync_cmd() returns a positive error code for NVMe errors. Otherwise, we get 0 for success or a negative error code for a kernel error. In nuse_show() -> ns_{head}_update_nuse() -> nvme_identify_ns() -> nvme_submit_sync_cmd() -> __nvme_submit_sync_cmd(), we then may get a positive error code returned. Function nuse_show() - being a device attr handler - should return the number of bytes written to the buffer or a negative error code. Convert any positive NVMe error code to -EIO. Signed-off-by: John Garry <john.g.garry@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Keith Busch <kbusch@kernel.org>
-rw-r--r--drivers/nvme/host/sysfs.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/nvme/host/sysfs.c b/drivers/nvme/host/sysfs.c
index 75b2d69b5957..abf8edaae371 100644
--- a/drivers/nvme/host/sysfs.c
+++ b/drivers/nvme/host/sysfs.c
@@ -240,8 +240,10 @@ static ssize_t nuse_show(struct device *dev, struct device_attribute *attr,
ret = ns_head_update_nuse(head);
else
ret = ns_update_nuse(disk->private_data);
- if (ret)
+ if (ret < 0)
return ret;
+ else if (ret > 0)
+ return -EIO;
return sysfs_emit(buf, "%llu\n", head->nuse);
}