2021-04-14 16:08:42

by Trond Myklebust

[permalink] [raw]
Subject: [PATCH v2 00/26] Attribute revalidation updates

From: Trond Myklebust <[email protected]>

The following updates try to simplify some of the attribute caching, and
further split out the attribute cache tracking. In particular, we want
to make use of the fact that NFSv4.x doesn't always need to retrieve all
the attributes to optimise the way we use the GETATTR call.

v2:
- A number of changes to try to clean up the cache invalidation flags.
- Fix a bug that was turning off revalidation for most attributes in
nfs_getattr().
- Fixes to allow us to reduce the set of attributes we request from the
server when holding a delegation. In particular, try to reduce
requests for OWNER and GROUP_OWNER, since those may result in
expensive upcalls.

Trond Myklebust (26):
NFS: Deal correctly with attribute generation counter overflow
NFS: Fix up inode cache tracing
NFS: Mask out unsupported attributes in nfs_getattr()
NFS: NFS_INO_REVAL_PAGECACHE should mark the change attribute invalid
NFS: Fix up revalidation of space used
NFS: Don't revalidate attributes that are not being asked for
NFS: Fix up statx() results
NFS: nfs_setattr_update_inode() should clear the suid/sgid bits
NFS: Add a cache validity flag argument to nfs_revalidate_inode()
NFS: Replace use of NFS_INO_REVAL_PAGECACHE when checking cache
validity
NFS: Don't set NFS_INO_REVAL_PAGECACHE in the inode cache validity
NFSv4: Fix nfs4_bitmap_copy_adjust()
NFS: Separate tracking of file nlinks cache validity from the
mode/uid/gid
NFS: Separate tracking of file mode cache validity from the uid/gid
NFS: Fix up handling of outstanding layoutcommit in nfs_update_inode()
NFS: Remove a line of code that has no effect in nfs_update_inode()
NFS: Simplify cache consistency in nfs_check_inode_attributes()
NFSv4: Fix value of decode_fsinfo_maxsz
NFSv4: Don't modify the change attribute cached in the inode
NFSv4: Add support for the NFSv4.2 "change_attr_type" attribute
NFS: Use information about the change attribute to optimise updates
NFS: Another inode revalidation improvement
NFSv4: nfs4_inc/dec_nlink_locked should also invalidate ctime
NFSv4: link must update the inode nlink.
NFS: Don't store NFS_INO_REVAL_FORCED
NFS: Split attribute support out from the server capabilities

fs/nfs/client.c | 18 +-
fs/nfs/delegation.c | 21 +-
fs/nfs/delegation.h | 3 +-
fs/nfs/dir.c | 7 +-
fs/nfs/export.c | 6 +-
fs/nfs/file.c | 2 +-
fs/nfs/inode.c | 414 ++++++++++++++++++++++++--------------
fs/nfs/nfs3acl.c | 2 +-
fs/nfs/nfs3xdr.c | 1 +
fs/nfs/nfs4proc.c | 160 +++++++++------
fs/nfs/nfs4xdr.c | 43 +++-
fs/nfs/nfstrace.h | 11 +-
fs/nfs/proc.c | 1 +
fs/nfs/write.c | 7 +-
include/linux/nfs4.h | 9 +
include/linux/nfs_fs.h | 6 +-
include/linux/nfs_fs_sb.h | 14 +-
include/linux/nfs_xdr.h | 2 +
18 files changed, 478 insertions(+), 249 deletions(-)

--
2.30.2