Re: [PATCH 00/14] VFS: Filesystem information [ver #18]
From: Andres Freund <hidden>
Date: 2020-03-10 00:18:30
Also in:
linux-api, linux-fsdevel, linux-nfs, linux-security-module, lkml
Hi, On 2020-03-09 18:49:31 -0400, Jeff Layton wrote:
On Mon, 2020-03-09 at 12:22 -0700, Andres Freund wrote:quoted
On 2020-03-09 13:50:59 -0400, Jeff Layton wrote:quoted
I sent a patch a few weeks ago to make syncfs() return errors when there have been writeback errors on the superblock. It's not merged yet, but once we have something like that in place, we could expose info from the errseq_t to userland using this interface.I'm still a bit worried about the details of errseq_t being exposed to userland. Partially because it seems to restrict further evolution of errseq_t, and partially because it will likely up with userland trying to understand it (it's e.g. just too attractive to report a count of errors etc).Trying to interpret the counter field won't really tell you anything. The counter is not incremented unless someone has queried the value since it was last checked. A single increment could represent a single writeback error or 10000 identical ones.
Oh, right. A zero errseq would still indicate something, but that's probably fine.
quoted
Is there a reason to not instead report a 64bit counter instead of the cookie? In contrast to the struct file case we'd only have the space overhead once per superblock, rather than once per #files * #fd. And it seems that the maintenance of that counter could be done without widespread changes, e.g. instead/in addition to your change:
What problem would moving to a 64-bit counter solve? I get the concern about people trying to get a counter out of the cookie field, but giving people an explicit 64-bit counter seems even more open to misinterpretation.
Well, you could get an actual error count out of it? I was thinking that that value would get incremented every time mapping_set_error() is called, which should make it a meaningful count? Greetings, Andres Freund