The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] f2fs: use the mount idmap for the owner check in f2fs_xattr_advise_set()
@ 2026-07-29  4:16 Rochan Avlur
  2026-07-30 10:23 ` Christian Brauner
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Rochan Avlur @ 2026-07-29  4:16 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu
  Cc: Christian Brauner, linux-f2fs-devel, linux-fsdevel, linux-kernel,
	stable, Rochan Avlur

f2fs_xattr_advise_set() calls inode_owner_or_capable() with
&nop_mnt_idmap before allowing the advise xattr to be set, instead of
the idmap that was passed into the handler.

Since f2fs supports idmapped mounts, this compares the caller's fsuid
against the unmapped on-disk owner rather than the mapped owner; resulting
in the actual owner to be wrongly denied with -EPERM. Use the idmap
argument that was already passed to the xattr handler instead.

Fixes: 984fc4e76d63 ("f2fs: support idmapped mounts")
Cc: stable@vger.kernel.org
Signed-off-by: Rochan Avlur <rochan.avlur@gmail.com>
---
 fs/f2fs/xattr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c
index 610d5810074d..281e2fd6c778 100644
--- a/fs/f2fs/xattr.c
+++ b/fs/f2fs/xattr.c
@@ -118,7 +118,7 @@ static int f2fs_xattr_advise_set(const struct xattr_handler *handler,
 	unsigned char old_advise = F2FS_I(inode)->i_advise;
 	unsigned char new_advise;
 
-	if (!inode_owner_or_capable(&nop_mnt_idmap, inode))
+	if (!inode_owner_or_capable(idmap, inode))
 		return -EPERM;
 	if (value == NULL)
 		return -EINVAL;
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread
* [PATCH] f2fs: use the mount idmap for the owner check in f2fs_xattr_advise_set()
@ 2026-07-16  2:59 Zhan Xusheng
  2026-08-05 21:20 ` [f2fs-dev] " patchwork-bot+f2fs
  0 siblings, 1 reply; 7+ messages in thread
From: Zhan Xusheng @ 2026-07-16  2:59 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu
  Cc: Christian Brauner, Pedro Falcato, Jan Kara, linux-f2fs-devel,
	stable, linux-kernel, Zhan Xusheng

f2fs_xattr_advise_set() calls inode_owner_or_capable() with &nop_mnt_idmap
before allowing the "system.advise" xattr to be set, instead of the idmap
that the VFS passes to the ->set() handler.

f2fs supports idmapped mounts, so on such a mount this checks the caller's
fsuid against the unmapped on-disk owner rather than the mapped owner: the
actual owner can be wrongly denied with -EPERM and an unrelated caller
wrongly allowed.  Pass the handler's idmap instead.

Fixes: 01beba7957a2 ("fs: port inode_owner_or_capable() to mnt_idmap")
Cc: stable@vger.kernel.org
Signed-off-by: Zhan Xusheng <zhanxusheng@xiaomi.com>
---
 fs/f2fs/xattr.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c
index ed33e5110f2a..6728d1488cad 100644
--- a/fs/f2fs/xattr.c
+++ b/fs/f2fs/xattr.c
@@ -119,7 +119,7 @@ static int f2fs_xattr_advise_set(const struct xattr_handler *handler,
 	unsigned char old_advise = F2FS_I(inode)->i_advise;
 	unsigned char new_advise;
 
-	if (!inode_owner_or_capable(&nop_mnt_idmap, inode))
+	if (!inode_owner_or_capable(idmap, inode))
 		return -EPERM;
 	if (value == NULL)
 		return -EINVAL;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-08-05 21:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-29  4:16 [PATCH] f2fs: use the mount idmap for the owner check in f2fs_xattr_advise_set() Rochan Avlur
2026-07-30 10:23 ` Christian Brauner
2026-08-03 23:33   ` [f2fs-dev] " Jaegeuk Kim
2026-08-03  8:40 ` Chao Yu
2026-08-03 13:43   ` Rochan Avlur
2026-08-05 21:20 ` [f2fs-dev] " patchwork-bot+f2fs
  -- strict thread matches above, loose matches on Subject: below --
2026-07-16  2:59 Zhan Xusheng
2026-08-05 21:20 ` [f2fs-dev] " patchwork-bot+f2fs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox