anon_inode: use a proper mode internally
authorChristian Brauner <brauner@kernel.org>
Mon, 7 Apr 2025 09:54:15 +0000 (11:54 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 7 Apr 2025 14:18:46 +0000 (16:18 +0200)
commitcfd86ef7e8e7b9e015707e46479a6b1de141eed0
tree85e16b07ef273652843b4dde624d2062f7efb655
parent418556fa576ebbd644c7258a97b33203956ea232
anon_inode: use a proper mode internally

This allows the VFS to not trip over anonymous inodes and we can add
asserts based on the mode into the vfs. When we report it to userspace
we can simply hide the mode to avoid regressions. I've audited all
direct callers of alloc_anon_inode() and only secretmen overrides i_mode
and i_op inode operations but it already uses a regular file.

Link: https://lore.kernel.org/20250407-work-anon_inode-v1-1-53a44c20d44e@kernel.org
Fixes: af153bb63a336 ("vfs: catch invalid modes in may_open()")
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Cc: stable@vger.kernel.org # all LTS kernels
Reported-by: syzbot+5d8e79d323a13aa0b248@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/all/67ed3fb3.050a0220.14623d.0009.GAE@google.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/anon_inodes.c
fs/internal.h
fs/libfs.c