[PATCH 00/12] acl: remove remaining posix acl handlers
Christian Brauner
brauner at kernel.org
Wed Jan 25 22:28:45 AEDT 2023
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@kernel.org
[2]: ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/vfs/idmapping.git tags/fs.acl.remove.generic.xattr.handlers.v1
Signed-off-by: Christian Brauner (Microsoft) <brauner at kernel.org>
---
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
More information about the Linux-erofs
mailing list