From: Christian Brauner <brauner@kernel.org> To: linux-fsdevel@vger.kernel.org, Christoph Hellwig <hch@lst.de> Cc: Al Viro <viro@zeniv.linux.org.uk>, Seth Forshee <sforshee@kernel.org>, "Christian Brauner (Microsoft)" <brauner@kernel.org>, linux-mtd@lists.infradead.org Subject: [PATCH 09/12] jffs2: drop posix acl handlers Date: Wed, 25 Jan 2023 12:28:54 +0100 [thread overview] Message-ID: <20230125-fs-acl-remove-generic-xattr-handlers-v1-9-6cf155b492b6@kernel.org> (raw) In-Reply-To: <20230125-fs-acl-remove-generic-xattr-handlers-v1-0-6cf155b492b6@kernel.org> Last cycle we introduced a new posix acl api. Filesystems now only need to implement the inode operations for posix acls. The generic xattr handlers aren't used anymore by the vfs and will be completely removed. Keeping the handler around is confusing and gives the false impression that the xattr infrastructure of the vfs is used to interact with posix acls when it really isn't anymore. For this to work we simply rework the ->listxattr() inode operation to not rely on the generix posix acl handlers anymore. Cc: <linux-mtd@lists.infradead.org> Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org> --- fs/jffs2/xattr.c | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/fs/jffs2/xattr.c b/fs/jffs2/xattr.c index da3e18503c65..40cf03dc34be 100644 --- a/fs/jffs2/xattr.c +++ b/fs/jffs2/xattr.c @@ -919,43 +919,46 @@ const struct xattr_handler *jffs2_xattr_handlers[] = { &jffs2_user_xattr_handler, #ifdef CONFIG_JFFS2_FS_SECURITY &jffs2_security_xattr_handler, -#endif -#ifdef CONFIG_JFFS2_FS_POSIX_ACL - &posix_acl_access_xattr_handler, - &posix_acl_default_xattr_handler, #endif &jffs2_trusted_xattr_handler, NULL }; -static const struct xattr_handler *xprefix_to_handler(int xprefix) { - const struct xattr_handler *ret; +static const char *jffs2_xattr_prefix(int xprefix, struct dentry *dentry) +{ + const char *name = NULL; + const struct xattr_handler *handler = NULL; switch (xprefix) { case JFFS2_XPREFIX_USER: - ret = &jffs2_user_xattr_handler; + handler = &jffs2_user_xattr_handler; + break; + case JFFS2_XPREFIX_TRUSTED: + handler = &jffs2_trusted_xattr_handler; break; #ifdef CONFIG_JFFS2_FS_SECURITY case JFFS2_XPREFIX_SECURITY: - ret = &jffs2_security_xattr_handler; + handler = &jffs2_security_xattr_handler; break; #endif #ifdef CONFIG_JFFS2_FS_POSIX_ACL case JFFS2_XPREFIX_ACL_ACCESS: - ret = &posix_acl_access_xattr_handler; + if (posix_acl_dentry_list(dentry)) + name = XATTR_NAME_POSIX_ACL_ACCESS; break; case JFFS2_XPREFIX_ACL_DEFAULT: - ret = &posix_acl_default_xattr_handler; + if (posix_acl_dentry_list(dentry)) + name = XATTR_NAME_POSIX_ACL_DEFAULT; break; #endif - case JFFS2_XPREFIX_TRUSTED: - ret = &jffs2_trusted_xattr_handler; - break; default: - ret = NULL; - break; + return NULL; } - return ret; + + if (xattr_dentry_list(handler, dentry)) + name = xattr_prefix(handler); + + return name; } ssize_t jffs2_listxattr(struct dentry *dentry, char *buffer, size_t size) @@ -966,7 +969,6 @@ ssize_t jffs2_listxattr(struct dentry *dentry, char *buffer, size_t size) struct jffs2_inode_cache *ic = f->inocache; struct jffs2_xattr_ref *ref, **pref; struct jffs2_xattr_datum *xd; - const struct xattr_handler *xhandle; const char *prefix; ssize_t prefix_len, len, rc; int retry = 0; @@ -998,10 +1000,10 @@ ssize_t jffs2_listxattr(struct dentry *dentry, char *buffer, size_t size) goto out; } } - xhandle = xprefix_to_handler(xd->xprefix); - if (!xhandle || (xhandle->list && !xhandle->list(dentry))) + + prefix = jffs2_xattr_prefix(xd->xprefix, dentry); + if (!prefix) continue; - prefix = xhandle->prefix ?: xhandle->name; prefix_len = strlen(prefix); rc = prefix_len + xd->name_len + 1; -- 2.34.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: Christian Brauner <brauner@kernel.org> To: linux-fsdevel@vger.kernel.org, Christoph Hellwig <hch@lst.de> Cc: Al Viro <viro@zeniv.linux.org.uk>, Seth Forshee <sforshee@kernel.org>, "Christian Brauner (Microsoft)" <brauner@kernel.org>, linux-mtd@lists.infradead.org Subject: [PATCH 09/12] jffs2: drop posix acl handlers Date: Wed, 25 Jan 2023 12:28:54 +0100 [thread overview] Message-ID: <20230125-fs-acl-remove-generic-xattr-handlers-v1-9-6cf155b492b6@kernel.org> (raw) In-Reply-To: <20230125-fs-acl-remove-generic-xattr-handlers-v1-0-6cf155b492b6@kernel.org> Last cycle we introduced a new posix acl api. Filesystems now only need to implement the inode operations for posix acls. The generic xattr handlers aren't used anymore by the vfs and will be completely removed. Keeping the handler around is confusing and gives the false impression that the xattr infrastructure of the vfs is used to interact with posix acls when it really isn't anymore. For this to work we simply rework the ->listxattr() inode operation to not rely on the generix posix acl handlers anymore. Cc: <linux-mtd@lists.infradead.org> Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org> --- fs/jffs2/xattr.c | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/fs/jffs2/xattr.c b/fs/jffs2/xattr.c index da3e18503c65..40cf03dc34be 100644 --- a/fs/jffs2/xattr.c +++ b/fs/jffs2/xattr.c @@ -919,43 +919,46 @@ const struct xattr_handler *jffs2_xattr_handlers[] = { &jffs2_user_xattr_handler, #ifdef CONFIG_JFFS2_FS_SECURITY &jffs2_security_xattr_handler, -#endif -#ifdef CONFIG_JFFS2_FS_POSIX_ACL - &posix_acl_access_xattr_handler, - &posix_acl_default_xattr_handler, #endif &jffs2_trusted_xattr_handler, NULL }; -static const struct xattr_handler *xprefix_to_handler(int xprefix) { - const struct xattr_handler *ret; +static const char *jffs2_xattr_prefix(int xprefix, struct dentry *dentry) +{ + const char *name = NULL; + const struct xattr_handler *handler = NULL; switch (xprefix) { case JFFS2_XPREFIX_USER: - ret = &jffs2_user_xattr_handler; + handler = &jffs2_user_xattr_handler; + break; + case JFFS2_XPREFIX_TRUSTED: + handler = &jffs2_trusted_xattr_handler; break; #ifdef CONFIG_JFFS2_FS_SECURITY case JFFS2_XPREFIX_SECURITY: - ret = &jffs2_security_xattr_handler; + handler = &jffs2_security_xattr_handler; break; #endif #ifdef CONFIG_JFFS2_FS_POSIX_ACL case JFFS2_XPREFIX_ACL_ACCESS: - ret = &posix_acl_access_xattr_handler; + if (posix_acl_dentry_list(dentry)) + name = XATTR_NAME_POSIX_ACL_ACCESS; break; case JFFS2_XPREFIX_ACL_DEFAULT: - ret = &posix_acl_default_xattr_handler; + if (posix_acl_dentry_list(dentry)) + name = XATTR_NAME_POSIX_ACL_DEFAULT; break; #endif - case JFFS2_XPREFIX_TRUSTED: - ret = &jffs2_trusted_xattr_handler; - break; default: - ret = NULL; - break; + return NULL; } - return ret; + + if (xattr_dentry_list(handler, dentry)) + name = xattr_prefix(handler); + + return name; } ssize_t jffs2_listxattr(struct dentry *dentry, char *buffer, size_t size) @@ -966,7 +969,6 @@ ssize_t jffs2_listxattr(struct dentry *dentry, char *buffer, size_t size) struct jffs2_inode_cache *ic = f->inocache; struct jffs2_xattr_ref *ref, **pref; struct jffs2_xattr_datum *xd; - const struct xattr_handler *xhandle; const char *prefix; ssize_t prefix_len, len, rc; int retry = 0; @@ -998,10 +1000,10 @@ ssize_t jffs2_listxattr(struct dentry *dentry, char *buffer, size_t size) goto out; } } - xhandle = xprefix_to_handler(xd->xprefix); - if (!xhandle || (xhandle->list && !xhandle->list(dentry))) + + prefix = jffs2_xattr_prefix(xd->xprefix, dentry); + if (!prefix) continue; - prefix = xhandle->prefix ?: xhandle->name; prefix_len = strlen(prefix); rc = prefix_len + xd->name_len + 1; -- 2.34.1
next prev parent reply other threads:[~2023-01-25 11:30 UTC|newest] Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-01-25 11:28 [f2fs-dev] [PATCH 00/12] acl: remove remaining posix acl handlers Christian Brauner 2023-01-25 11:28 ` Christian Brauner 2023-01-25 11:28 ` [Ocfs2-devel] " Christian Brauner via Ocfs2-devel 2023-01-25 11:28 ` Christian Brauner 2023-01-25 11:28 ` Christian Brauner 2023-01-25 11:28 ` Christian Brauner 2023-01-25 11:28 ` [PATCH 01/12] xattr: simplify listxattr helpers Christian Brauner 2023-01-30 6:35 ` Christoph Hellwig 2023-01-25 11:28 ` [PATCH 02/12] xattr, posix acl: add " Christian Brauner 2023-01-30 6:37 ` Christoph Hellwig 2023-01-25 11:28 ` [PATCH 03/12] xattr: remove unused argument Christian Brauner 2023-01-30 6:37 ` Christoph Hellwig 2023-01-25 11:28 ` [PATCH 04/12] fs: drop unused posix acl handlers Christian Brauner 2023-01-30 6:38 ` Christoph Hellwig 2023-01-25 11:28 ` [PATCH 05/12] erofs: drop " Christian Brauner 2023-01-25 11:28 ` Christian Brauner 2023-01-30 6:43 ` Christoph Hellwig 2023-01-30 6:43 ` Christoph Hellwig 2023-01-30 9:00 ` Christian Brauner 2023-01-30 9:00 ` Christian Brauner 2023-01-30 9:11 ` Christoph Hellwig 2023-01-30 9:11 ` Christoph Hellwig 2023-01-25 11:28 ` [PATCH 06/12] ext2: " Christian Brauner 2023-01-25 13:03 ` Jan Kara 2023-01-25 11:28 ` [PATCH 07/12] ext4: " Christian Brauner 2023-01-25 11:28 ` [f2fs-dev] [PATCH 08/12] f2fs: " Christian Brauner 2023-01-25 11:28 ` Christian Brauner 2023-01-25 11:28 ` Christian Brauner [this message] 2023-01-25 11:28 ` [PATCH 09/12] jffs2: " Christian Brauner 2023-01-25 11:28 ` [PATCH 10/12] ocfs2: " Christian Brauner 2023-01-25 11:28 ` [Ocfs2-devel] " Christian Brauner via Ocfs2-devel 2023-01-25 11:28 ` [PATCH 11/12] reiserfs: " Christian Brauner 2023-01-25 11:28 ` [PATCH 12/12] acl: remove " Christian Brauner 2023-01-31 12:04 ` kernel test robot 2023-01-30 9:10 ` [PATCH 00/12] acl: remove remaining " Christian Brauner 2023-01-30 9:10 ` Christian Brauner 2023-01-30 9:10 ` [f2fs-dev] " Christian Brauner 2023-01-30 9:10 ` Christian Brauner 2023-01-30 9:10 ` [Ocfs2-devel] " Christian Brauner via Ocfs2-devel 2023-01-30 9:16 ` Christoph Hellwig 2023-01-30 9:16 ` Christoph Hellwig 2023-01-30 9:16 ` Christoph Hellwig 2023-01-30 9:16 ` [f2fs-dev] " Christoph Hellwig 2023-01-30 9:16 ` [Ocfs2-devel] " Christoph Hellwig via Ocfs2-devel 2023-01-30 10:23 ` Christian Brauner 2023-01-30 10:23 ` Christian Brauner 2023-01-30 10:23 ` Christian Brauner 2023-01-30 10:23 ` [f2fs-dev] " Christian Brauner 2023-01-30 10:23 ` [Ocfs2-devel] " Christian Brauner via Ocfs2-devel
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=20230125-fs-acl-remove-generic-xattr-handlers-v1-9-6cf155b492b6@kernel.org \ --to=brauner@kernel.org \ --cc=hch@lst.de \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-mtd@lists.infradead.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: linkBe 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.