[GIT PULL] overlayfs update for 5.15

From: Miklos Szeredi
Date: Thu Sep 02 2021 - 09:52:21 EST


Hi Linus,

Please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git tags/ovl-update-5.15

- Copy up immutable/append/sync/noatime attributes (Amir Goldstein)

- Improve performance by enabling RCU lookup.

- Misc fixes and improvements

The reason this touches so many files is that the ->get_acl() method now
gets a "bool rcu" argument. The ->get_acl() API was updated based on
comments from Al and Linus:

https://lore.kernel.org/linux-fsdevel/CAJfpeguQxpd6Wgc0Jd3ks77zcsAv_bn0q17L3VNnnmPKu11t8A@xxxxxxxxxxxxxx/

Thanks,
Miklos

---
Amir Goldstein (5):
fs: add generic helper for filling statx attribute flags
ovl: pass ovl_fs to ovl_check_setxattr()
ovl: copy up sync/noatime fileattr flags
ovl: consistent behavior for immutable/append-only inodes
ovl: relax lookup error on mismatch origin ftype

Chengguang Xu (2):
ovl: skip checking lower file's i_writecount on truncate
ovl: update ctime when changing fileattr

Miklos Szeredi (3):
ovl: use kvalloc in xattr copy-up
vfs: add rcu argument to ->get_acl() callback
ovl: enable RCU'd ->get_acl()

Vyacheslav Yurkov (3):
ovl: disable decoding null uuid with redirect_dir
ovl: add ovl_allow_offline_changes() helper
ovl: do not set overlay.opaque for new directories

chenying (1):
ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()

---
Documentation/filesystems/locking.rst | 2 +-
Documentation/filesystems/overlayfs.rst | 3 +
Documentation/filesystems/vfs.rst | 2 +-
fs/9p/acl.c | 5 +-
fs/9p/acl.h | 2 +-
fs/bad_inode.c | 2 +-
fs/btrfs/acl.c | 5 +-
fs/btrfs/ctree.h | 2 +-
fs/ceph/acl.c | 5 +-
fs/ceph/super.h | 2 +-
fs/erofs/xattr.c | 5 +-
fs/erofs/xattr.h | 2 +-
fs/ext2/acl.c | 5 +-
fs/ext2/acl.h | 2 +-
fs/ext4/acl.c | 5 +-
fs/ext4/acl.h | 2 +-
fs/f2fs/acl.c | 5 +-
fs/f2fs/acl.h | 2 +-
fs/fuse/acl.c | 5 +-
fs/fuse/fuse_i.h | 2 +-
fs/gfs2/acl.c | 5 +-
fs/gfs2/acl.h | 2 +-
fs/jffs2/acl.c | 5 +-
fs/jffs2/acl.h | 2 +-
fs/jfs/acl.c | 5 +-
fs/jfs/jfs_acl.h | 2 +-
fs/nfs/nfs3_fs.h | 2 +-
fs/nfs/nfs3acl.c | 5 +-
fs/ocfs2/acl.c | 5 +-
fs/ocfs2/acl.h | 2 +-
fs/orangefs/acl.c | 5 +-
fs/orangefs/inode.c | 7 +--
fs/orangefs/orangefs-kernel.h | 2 +-
fs/overlayfs/copy_up.c | 83 ++++++++++++++++++++-----
fs/overlayfs/dir.c | 16 +++--
fs/overlayfs/inode.c | 105 +++++++++++++++++++++++++-------
fs/overlayfs/namei.c | 4 +-
fs/overlayfs/overlayfs.h | 44 +++++++++++--
fs/overlayfs/super.c | 4 +-
fs/overlayfs/util.c | 92 ++++++++++++++++++++++++++--
fs/posix_acl.c | 15 ++++-
fs/reiserfs/acl.h | 2 +-
fs/reiserfs/xattr_acl.c | 5 +-
fs/stat.c | 18 ++++++
fs/xfs/xfs_acl.c | 5 +-
fs/xfs/xfs_acl.h | 4 +-
include/linux/fs.h | 8 ++-
include/linux/posix_acl.h | 3 +-
include/linux/stat.h | 4 ++
49 files changed, 424 insertions(+), 102 deletions(-)