[PATCHv4 6/8] nvme: export I/O failure count when no path is available via sysfs

John Garry john.g.garry at oracle.com
Thu Jul 2 07:48:53 PDT 2026


On 02/07/2026 14:10, Nilay Shroff wrote:
> 
> The primary purpose of this attribute is to aid debugging. Under normal
> operation, the counter is expected to be zero most of the time because
> the namespace head is short-lived after all paths are removed. However,
> if there is a subtle bug in the namespace head reference counting logic
> that prevents it from being deleted, a non-zero value would remain
> visible under:
> 
> /sys/block/<nshead-dev>/diag/io_fail_no_available_path_count
> 
> And yes this attribute is writable (as all other diag attributes), only
> to allow users to reset the counter to zero and then observe subsequent
> events.

It's something minor, but it makes sense to me that we only allow users 
to reset the value to zero, like:

@@ -1249,7 +1249,7 @@ static ssize_t
io_fail_no_available_path_count_store(struct device *dev,
         struct nvme_ns_head *head = disk->private_data;

         err = kstrtoul(buf, 0, &fail_cnt);
-       if (err)
+       if (err || fail_cnt)
                 return -EINVAL;

         atomic_long_set(&head->io_fail_no_available_path_count, fail_cnt);




More information about the Linux-nvme mailing list