Re: [man-pages RFC PATCH v4] statx, inode: document the new STATX_INO_VERSION field

From: Florian Weimer
Date: Mon Sep 12 2022 - 09:21:07 EST


* Jeff Layton:

> On Mon, 2022-09-12 at 14:13 +0200, Florian Weimer wrote:
>> * Jeff Layton:
>>
>> > To do this we'd need 2 64-bit fields in the on-disk and in-memory
>> > superblocks for ext4, xfs and btrfs. On the first mount after a crash,
>> > the filesystem would need to bump s_version_max by the significant
>> > increment (2^40 bits or whatever). On a "clean" mount, it wouldn't need
>> > to do that.
>> >
>> > Would there be a way to ensure that the new s_version_max value has made
>> > it to disk? Bumping it by a large value and hoping for the best might be
>> > ok for most cases, but there are always outliers, so it might be
>> > worthwhile to make an i_version increment wait on that if necessary.
>>
>> How common are unclean shutdowns in practice? Do ex64/XFS/btrfs keep
>> counters in the superblocks for journal replays that can be read easily?
>>
>> Several useful i_version applications could be negatively impacted by
>> frequent i_version invalidation.
>>
>
> One would hope "not very often", but Oopses _are_ something that happens
> occasionally, even in very stable environments, and it would be best if
> what we're building can cope with them.

I was wondering if such unclean shutdown events are associated with SSD
“unsafe shutdowns”, as identified by the SMART counter. I think those
aren't necessarily restricted to oopses or various forms of powerless
(maybe depending on file system/devicemapper configuration)?

I admit it's possible that the file system is shut down cleanly before
the kernel requests the power-off state from the firmware, but the
underlying SSD is not.

Thanks,
Florian