diff mbox series

ocfs2: enable ocfs2_listxattr for special files

Message ID 20240312042908.8889-1-l@damenly.org (mailing list archive)
State New
Headers show
Series ocfs2: enable ocfs2_listxattr for special files | expand

Commit Message

Su Yue March 12, 2024, 4:29 a.m. UTC
From: Su Yue <glass.su@suse.com>

For special files in S_IFBLK/S_IFCHR/S_IFIFO type, we already
have ocfs2_setattr and ocfs2_getattr enabled.
It's confusing for user space if it can use setattr/getattr to
control one attribute appointed but can not list attributes
using listxattr for above type files:

$ mknod /mnt/b b 0 0
$ setfattr -h -n trusted.name -v 0xbabe /mnt/b
$ getfattr -n trusted.name  /mnt/b
getfattr: Removing leading '/' from absolute path names
trusted.name=0sur4=

$ getfattr -m trusted  /mnt/b
$

Fix it by enabling ocfs2_listxattr for ocfs2_special_file_iops.
After the commit, fstests/generic/062 will pass.

Signed-off-by: Su Yue <glass.su@suse.com>
---
 fs/ocfs2/file.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Joseph Qi March 12, 2024, 6:23 a.m. UTC | #1
On 3/12/24 12:29 PM, Su Yue wrote:
> From: Su Yue <glass.su@suse.com>
> 
> For special files in S_IFBLK/S_IFCHR/S_IFIFO type, we already
> have ocfs2_setattr and ocfs2_getattr enabled.
> It's confusing for user space if it can use setattr/getattr to
> control one attribute appointed but can not list attributes
> using listxattr for above type files:
> 
> $ mknod /mnt/b b 0 0
> $ setfattr -h -n trusted.name -v 0xbabe /mnt/b
> $ getfattr -n trusted.name  /mnt/b
> getfattr: Removing leading '/' from absolute path names
> trusted.name=0sur4=
> 
> $ getfattr -m trusted  /mnt/b
> $
> 
> Fix it by enabling ocfs2_listxattr for ocfs2_special_file_iops.
> After the commit, fstests/generic/062 will pass.
> 
> Signed-off-by: Su Yue <glass.su@suse.com>

Acked-by: Joseph Qi \<joseph.qi@linux.alibaba.com\>

> ---
>  fs/ocfs2/file.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
> index 8b6d15010703..0da8e7bd3261 100644
> --- a/fs/ocfs2/file.c
> +++ b/fs/ocfs2/file.c
> @@ -2763,6 +2763,7 @@ const struct inode_operations ocfs2_file_iops = {
>  const struct inode_operations ocfs2_special_file_iops = {
>  	.setattr	= ocfs2_setattr,
>  	.getattr	= ocfs2_getattr,
> +	.listxattr	= ocfs2_listxattr,
>  	.permission	= ocfs2_permission,
>  	.get_inode_acl	= ocfs2_iop_get_acl,
>  	.set_acl	= ocfs2_iop_set_acl,
diff mbox series

Patch

diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 8b6d15010703..0da8e7bd3261 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -2763,6 +2763,7 @@  const struct inode_operations ocfs2_file_iops = {
 const struct inode_operations ocfs2_special_file_iops = {
 	.setattr	= ocfs2_setattr,
 	.getattr	= ocfs2_getattr,
+	.listxattr	= ocfs2_listxattr,
 	.permission	= ocfs2_permission,
 	.get_inode_acl	= ocfs2_iop_get_acl,
 	.set_acl	= ocfs2_iop_set_acl,