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

Nilay Shroff nilay at linux.ibm.com
Thu Jul 2 23:46:53 PDT 2026


On 7/2/26 8:18 PM, John Garry wrote:
> 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);
> 

Yes practically, I think no one would want to set these
counters value to anything but zero. So I'm okay with
the above change.

Thanks,
--Nilay



More information about the Linux-nvme mailing list