Hey everyone, after we finished the introduction of the new posix acl api last cycle we still left the generic POSIX ACL xattr handler around for two reasons. First, because a few filesystems relied on the ->list() method of the generic POSIX ACL xattr handlers in their ->listxattr() inode operation. Second, during inode initalization in inode_init_always() the registered xattr handlers in sb->s_xattr are used to raise IOP_XATTR in inode->i_opflags. With the removal of the legacy POSIX ACL handlers it is at least possible for a filesystem to only implement POSIX ACLs but no other xattrs. If that were to happen we would miss to raise IOP_XATTR because sb->s_xattr would be NULL. Fix these things and then get rid of the misleading and effectively already unused generic POSIX ACL handlers. For most filesystems it is a trivial removal of the generic POSIX ACL handlers. Only for erofs, ext2, ext4, f2fs, jffs2, reiserfs, oc2fs the handler is used but rather easy to fix. All filesystems with reasonable integration into xfstests have been tested with: ./check -g acl,attr,cap,idmapped,io_uring,perms,unlink All tests pass without regression on xfstests for-next branch. Since erofs doesn't have integration into xfstests yet afaict I have tested it with the testuite available in erofs-utils. They also all pass without any regressions. This branch depends on [1] which hopefully should be merged soon and can be pulled from [2] which already includes [1] so it's easy to test and compile. With this all remnants of the old POSIX ACL xattr handling will be gone. Thanks! Christian [1]: https://lore.kernel.org/lkml/20230125100040.374709-1-brauner@xxxxxxxxxx [2]: ssh://git@xxxxxxxxxxxxxxxxxxx/pub/scm/linux/kernel/git/vfs/idmapping.git tags/fs.acl.remove.generic.xattr.handlers.v1 Signed-off-by: Christian Brauner (Microsoft) <brauner@xxxxxxxxxx> --- Christian Brauner (12): xattr: simplify listxattr helpers xattr, posix acl: add listxattr helpers xattr: remove unused argument fs: drop unused posix acl handlers erofs: drop posix acl handlers ext2: drop posix acl handlers ext4: drop posix acl handlers f2fs: drop posix acl handlers jffs2: drop posix acl handlers ocfs2: drop posix acl handlers reiserfs: drop posix acl handlers acl: remove posix acl handlers fs/9p/xattr.c | 4 -- fs/btrfs/xattr.c | 4 -- fs/ceph/xattr.c | 4 -- fs/cifs/xattr.c | 4 -- fs/ecryptfs/inode.c | 4 -- fs/erofs/xattr.c | 49 ++++++++++++---- fs/erofs/xattr.h | 21 ------- fs/ext2/xattr.c | 60 +++++++++++-------- fs/ext4/xattr.c | 71 +++++++++++++---------- fs/f2fs/xattr.c | 63 ++++++++++++-------- fs/gfs2/xattr.c | 2 - fs/jffs2/xattr.c | 42 +++++++------- fs/jfs/xattr.c | 4 -- fs/nfs/nfs3_fs.h | 1 - fs/nfs/nfs3acl.c | 6 -- fs/nfs/nfs3super.c | 3 - fs/nfsd/nfs4xdr.c | 3 +- fs/ntfs3/xattr.c | 4 -- fs/ocfs2/xattr.c | 41 +++++++------ fs/orangefs/xattr.c | 2 - fs/overlayfs/super.c | 8 --- fs/posix_acl.c | 20 ------- fs/reiserfs/xattr.c | 38 ++++++------ fs/xattr.c | 124 ++++++++++++++++++++-------------------- fs/xfs/xfs_xattr.c | 4 -- include/linux/posix_acl_xattr.h | 6 +- include/linux/xattr.h | 8 ++- mm/shmem.c | 4 -- 28 files changed, 290 insertions(+), 314 deletions(-) --- base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2 change-id: 20230125-fs-acl-remove-generic-xattr-handlers-4cfed8558d88