This patchset is intended to clean up the handling of the i_version counter by nfsd. Most of the changes are to internal interfaces. This set is not intended to address crash resilience, or the fact that the counter is bumped before a change and not after. I intend to tackle those in follow-on patchsets. My intention is to get this series included into linux-next soon, with an eye toward merging most of it during the v6.2 merge window. The last patch in the series is probably not suitable for merge as-is, at least until we sort out the semantics we want to present to userland for it. Jeff Layton (9): fs: uninline inode_query_iversion fs: clarify when the i_version counter must be updated vfs: plumb i_version handling into struct kstat nfs: report the inode version in getattr if requested ceph: report the inode version in getattr if requested nfsd: move nfsd4_change_attribute to nfsfh.c nfsd: use the getattr operation to fetch i_version nfsd: remove fetch_iversion export operation vfs: expose STATX_VERSION to userland fs/ceph/inode.c | 16 +++++++---- fs/libfs.c | 36 ++++++++++++++++++++++++ fs/nfs/export.c | 7 ----- fs/nfs/inode.c | 15 +++++++--- fs/nfsd/nfs4xdr.c | 4 ++- fs/nfsd/nfsfh.c | 42 ++++++++++++++++++++++++++++ fs/nfsd/nfsfh.h | 29 +------------------- fs/nfsd/vfs.h | 7 ++++- fs/stat.c | 7 +++++ include/linux/exportfs.h | 1 - include/linux/iversion.h | 58 ++++++++++++++------------------------- include/linux/stat.h | 2 +- include/uapi/linux/stat.h | 6 ++-- samples/vfs/test-statx.c | 8 ++++-- 14 files changed, 148 insertions(+), 90 deletions(-) -- 2.37.3