mbox series

[GIT,PULL] acl updates

Message ID 20230421-kundgeben-filmpreis-0e443f89efe2@brauner (mailing list archive)
State Mainlined, archived
Headers show
Series [GIT,PULL] acl updates | expand

Pull-request

git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/v6.4/vfs.acl

Message

Christian Brauner April 21, 2023, 1:45 p.m. UTC
Hey Linus,

/* Summary */
After finishing the introduction of the new posix acl api last cycle the
generic POSIX ACL xattr handlers are still around in the filesystems
xattr handlers for two reasons:

(1) Because a few filesystems rely on the ->list() method of the generic
    POSIX ACL xattr handlers in their ->listxattr() inode operation.
(2) POSIX ACLs are only available if IOP_XATTR is raised. The IOP_XATTR
    flag is raised in inode_init_always() based on whether the
    sb->s_xattr pointer is non-NULL. IOW, the registered xattr handlers
    of the filesystem are used to raise IOP_XATTR.
    Removing the generic POSIX ACL xattr handlers from all filesystems
    would risk regressing filesystems that only implement POSIX ACL
    support and no other xattrs (nfs3 comes to mind).

This pull request contains the work to decouple POSIX ACLs from
the IOP_XATTR flag as they don't depend on xattr handlers anymore. So
it's now possible to remove the generic POSIX ACL xattr handlers from
the sb->s_xattr list of all filesystems. This is a crucial step as the
generic POSIX ACL xattr handlers aren't used for POSIX ACLs anymore and
POSIX ACLs don't depend on the xattr infrastructure anymore.

Adressing problem (1) will require more long-term work. It would be best
to get rid of the ->list() method of xattr handlers completely at some
point.

For erofs, ext{2,4}, f2fs, jffs2, ocfs2, and reiserfs the nop POSIX ACL
xattr handler is kept around so they can continue to use array-based
xattr handler indexing. The pull request does simplify the ->listxattr()
implementation of all these filesystems however.

/* Testing */
clang: Ubuntu clang version 15.0.6
gcc: (Ubuntu 12.2.0-3ubuntu1) 12.2.0

All patches are based on 6.3-rc1 and have been sitting in linux-next.
No build failures or warnings were observed. All old and new tests in
fstests, selftests, and LTP pass without regressions.

/* Conflicts */
The following merge conflict including a proposed conflict resolution
was reported from linux-next in:

(1) linux-next: manual merge of the erofs tree with the vfs-idmapping tree
    https://lore.kernel.org/linux-next/4f9fdec2-cc2a-4bc7-9ddc-87809395f493@sirena.org.uk

At the time of creating this PR no merge conflicts showed up doing a
test-merge with current mainline.

The following changes since commit fe15c26ee26efa11741a7b632e9f23b01aca4cc6:

  Linux 6.3-rc1 (2023-03-05 14:52:03 -0800)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/v6.4/vfs.acl

for you to fetch changes up to e499214ce3ef50c50522719e753a1ffc928c2ec1:

  acl: don't depend on IOP_XATTR (2023-03-06 09:59:20 +0100)

Please consider pulling these changes from the signed v6.4/vfs.acl tag.

Thanks!
Christian

----------------------------------------------------------------
v6.4/vfs.acl

----------------------------------------------------------------
Christian Brauner (10):
      xattr: simplify listxattr helpers
      xattr: add listxattr helper
      xattr: remove unused argument
      fs: drop unused posix acl handlers
      fs: simplify ->listxattr() implementation
      reiserfs: rework ->listxattr() implementation
      fs: rename generic posix acl handlers
      reiserfs: rework priv inode handling
      ovl: check for ->listxattr() support
      acl: don't depend on IOP_XATTR

 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                |  12 +---
 fs/erofs/xattr.h                |  20 ++++---
 fs/ext2/xattr.c                 |  25 ++++----
 fs/ext4/xattr.c                 |  25 ++++----
 fs/f2fs/xattr.c                 |  24 ++++----
 fs/gfs2/xattr.c                 |   2 -
 fs/jffs2/xattr.c                |  29 +++++-----
 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                |  14 ++---
 fs/orangefs/xattr.c             |   2 -
 fs/overlayfs/copy_up.c          |   3 +-
 fs/overlayfs/super.c            |   8 ---
 fs/posix_acl.c                  |  61 +++++++++++++++-----
 fs/reiserfs/file.c              |   7 +++
 fs/reiserfs/inode.c             |   6 +-
 fs/reiserfs/namei.c             |  50 ++++++++++++++--
 fs/reiserfs/reiserfs.h          |   2 +
 fs/reiserfs/xattr.c             |  55 +++++++++---------
 fs/xattr.c                      | 124 ++++++++++++++++++++--------------------
 fs/xfs/xfs_xattr.c              |   4 --
 include/linux/posix_acl.h       |   7 +++
 include/linux/posix_acl_xattr.h |   5 +-
 include/linux/xattr.h           |  19 +++++-
 mm/shmem.c                      |   4 --
 34 files changed, 292 insertions(+), 257 deletions(-)

Comments

pr-tracker-bot@kernel.org April 24, 2023, 9:45 p.m. UTC | #1
The pull request you sent on Fri, 21 Apr 2023 15:45:57 +0200:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/v6.4/vfs.acl

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/7bcff5a3969b0e396087516ba4131596296a4478

Thank you!