[PATCH v2 20/21] fuse: use passthrough getattr in setattr suid/sgid handling
Joanne Koong <[email protected]> Fri, 15 May 2026 17:40:03 -0700
| Newsgroups | org.kernel.vger.linux-unionfs,dev.linux.lists.fuse-devel |
|---|---|
| Message-ID | <[email protected]> |
When refreshing i_mode for suid/sgid kill during setattr, use passthrough getattr if the inode has that enabled. Signed-off-by: Joanne Koong <[email protected]> --- fs/fuse/dir.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index b67b3b334e69..fd1b3fd86968 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -2524,7 +2524,11 @@ static int fuse_setattr(struct mnt_idmap *idmap, struct dentry *entry, * ia_mode calculation may have used stale i_mode. * Refresh and recalculate. */ - ret = fuse_do_getattr(idmap, inode, NULL, file); + if (fuse_passthrough_op(inode, FUSE_GETATTR)) + ret = fuse_passthrough_getattr(inode, NULL, + STATX_MODE, 0); + else + ret = fuse_do_getattr(idmap, inode, NULL, file); if (ret) return ret; -- 2.52.0