From: Christoph Hellwig <hch@lst.de>
To: Christian Brauner <brauner@kernel.org>
Cc: linux-fsdevel@vger.kernel.org, Christoph Hellwig <hch@lst.de>,
Al Viro <viro@zeniv.linux.org.uk>,
Seth Forshee <sforshee@kernel.org>, Jeff Mahoney <jeffm@suse.com>
Subject: Re: [PATCH v2 1/8] fs: don't use IOP_XATTR for posix acls
Date: Mon, 30 Jan 2023 17:50:53 +0100 [thread overview]
Message-ID: <20230130165053.GA8357@lst.de> (raw)
In-Reply-To: <20230125-fs-acl-remove-generic-xattr-handlers-v2-1-214cfb88bb56@kernel.org>
On Mon, Jan 30, 2023 at 05:41:57PM +0100, Christian Brauner wrote:
> The POSIX ACL api doesn't use the xattr handler infrastructure anymore.
> If we keep relying on IOP_XATTR we will have to find a way to raise
> IOP_XATTR during inode_init_always() if a filesystem doesn't implement
> any xattrs other than POSIX ACLs. That's not done today but is in
> principle possible. A prior version introduced SB_I_XATTR to this end.
> Instead of this affecting all filesystems let those filesystems that
> explicitly disable xattrs for some inodes disable POSIX ACLs by raising
> IOP_NOACL.
I'm still a little confused about this, and also about
inode_xattr_disable. More below:
> - if (!(old->d_inode->i_opflags & IOP_XATTR) ||
> - !(new->d_inode->i_opflags & IOP_XATTR))
> + if (inode_xattr_disabled(old->d_inode) ||
> + inode_xattr_disabled(new->d_inode))
This code shouldn't care about ACLs because the copy up itself
should be all based around the ACL API, no?
> + if (!(inode->i_opflags & IOP_NOACL))
> error = set_posix_acl(mnt_userns, dentry, acl_type, kacl);
> else if (unlikely(is_bad_inode(inode)))
> error = -EIO;
> @@ -1205,7 +1205,7 @@ int vfs_remove_acl(struct user_namespace *mnt_userns, struct dentry *dentry,
> if (error)
> goto out_inode_unlock;
>
> - if (inode->i_opflags & IOP_XATTR)
> + if (!(inode->i_opflags & IOP_NOACL))
> error = set_posix_acl(mnt_userns, dentry, acl_type, NULL);
And here the lack of get/set methods should be all we need unless
I'm missing something?
> diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
> index c7d1fa526dea..2a7037b165f0 100644
> --- a/fs/reiserfs/inode.c
> +++ b/fs/reiserfs/inode.c
> @@ -2089,7 +2089,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th,
> */
> if (IS_PRIVATE(dir) || dentry == REISERFS_SB(sb)->priv_root) {
> inode->i_flags |= S_PRIVATE;
> - inode->i_opflags &= ~IOP_XATTR;
> + inode_xattr_disable(inode);
I'll need to hear from the reiserfs maintainers, but this also seems
like something that would be better done based on method presence.
> diff --git a/fs/xattr.c b/fs/xattr.c
> index adab9a70b536..89b6c122056d 100644
> --- a/fs/xattr.c
> +++ b/fs/xattr.c
> @@ -468,7 +468,7 @@ vfs_listxattr(struct dentry *dentry, char *list, size_t size)
> error = security_inode_listxattr(dentry);
> if (error)
> return error;
> - if (inode->i_op->listxattr && (inode->i_opflags & IOP_XATTR)) {
> + if (inode->i_op->listxattr && !inode_xattr_disabled(inode)) {
> error = inode->i_op->listxattr(dentry, list, size);
So once listing ACLs is moved out of ->listxattr there should be no
need to check anything for ACLs here either.
next prev parent reply other threads:[~2023-01-30 16:51 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-30 16:41 [PATCH v2 0/8] acl: remove generic posix acl handlers from all xattr handlers Christian Brauner
2023-01-30 16:41 ` Christian Brauner
2023-01-30 16:41 ` [f2fs-dev] " Christian Brauner
2023-01-30 16:41 ` Christian Brauner
2023-01-30 16:41 ` [PATCH v2 1/8] fs: don't use IOP_XATTR for posix acls Christian Brauner
2023-01-30 16:50 ` Christoph Hellwig [this message]
2023-01-30 18:09 ` Christian Brauner
2023-01-31 11:36 ` Christian Brauner
2023-01-31 14:55 ` Christian Brauner
2023-01-31 15:18 ` Christoph Hellwig
2023-01-30 16:41 ` [PATCH v2 2/8] xattr: simplify listxattr helpers Christian Brauner
2023-01-30 16:51 ` Christoph Hellwig
2023-01-30 16:41 ` [PATCH v2 3/8] xattr: add listxattr helper Christian Brauner
2023-01-30 16:51 ` Christoph Hellwig
2023-01-30 16:42 ` [PATCH v2 4/8] xattr: remove unused argument Christian Brauner
2023-01-30 16:42 ` [PATCH v2 5/8] fs: drop unused posix acl handlers Christian Brauner
2023-01-30 16:42 ` [PATCH v2 6/8] fs: simplify ->listxattr() implementation Christian Brauner
2023-01-30 16:42 ` Christian Brauner
2023-01-30 16:42 ` [f2fs-dev] " Christian Brauner
2023-01-30 16:42 ` Christian Brauner
2023-01-30 16:52 ` Christoph Hellwig
2023-01-30 16:52 ` Christoph Hellwig
2023-01-30 16:52 ` [f2fs-dev] " Christoph Hellwig
2023-01-30 16:52 ` Christoph Hellwig
2023-01-30 16:42 ` [PATCH v2 7/8] reiserfs: rework " Christian Brauner
2023-01-30 16:42 ` [PATCH v2 8/8] fs: rename generic posix acl handlers Christian Brauner
2023-01-30 16:53 ` Christoph Hellwig
2023-04-26 23:07 ` [f2fs-dev] [PATCH v2 0/8] acl: remove generic posix acl handlers from all xattr handlers patchwork-bot+f2fs
2023-04-26 23:07 ` patchwork-bot+f2fs
2023-04-26 23:07 ` patchwork-bot+f2fs
2023-04-26 23:07 ` patchwork-bot+f2fs
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230130165053.GA8357@lst.de \
--to=hch@lst.de \
--cc=brauner@kernel.org \
--cc=jeffm@suse.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=sforshee@kernel.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.