[PATCH v7 0/9] fs: clean up handling of i_version counter

Jeff Layton
2022-10-17T10:57:24Z

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