]> git.ipfire.org Git - thirdparty/linux.git/commit
ext4: mark inodes without acls in __ext4_iget()
authorJan Kara <jack@suse.cz>
Tue, 25 Nov 2025 10:13:41 +0000 (11:13 +0100)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 29 Nov 2025 03:35:28 +0000 (22:35 -0500)
commit91ef18b567dae84c0cea9b996d933c856e366f52
tree3943c84ac659a4307158d089cb8ad864858dfb4b
parentcab8cbcb923a89cb583c9088fa50431eb2feded5
ext4: mark inodes without acls in __ext4_iget()

Mark inodes without acls with cache_no_acl() in __ext4_iget() so that
path lookup can run in RCU mode from the start. This is interesting in
particular for the case where the file owner does the lookup because in
that case end up constantly hitting the slow path otherwise. We drop out
from the fast path (because ACL state is unknown) but never end up calling
check_acl() to cache ACL state.

The problem was originally analyzed by Linus and fix tested by Matheusz,
I'm just putting it into mergeable form :).

Link: https://lore.kernel.org/all/CAHk-=whSzc75TLLPWskV0xuaHR4tpWBr=LduqhcCFr4kCmme_w@mail.gmail.com
Reported-by: Mateusz Guzik <mjguzik@gmail.com>
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Baokun Li <libaokun1@huawei.com>
Message-ID: <20251125101340.24276-2-jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/inode.c