[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