Files
linux/fs
Miklos Szeredi cb8d2bdcb8 fuse: fix race when disposing stale dentries
In fuse_dentry_tree_work() just before d_dispose_if_unused() the dentry
could get evicted, resulting in UAF.

Move unlocking dentry_hash[i].lock to after the dispose.  To do this,
fuse_dentry_tree_del_node() needs to be moved from fuse_dentry_prune() to
fuse_dentry_release() to prevent an ABBA deadlock.

The lock ordering becomes:

 -> dentry_bucket.lock
    -> dentry.d_lock

Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Closes: https://lore.kernel.org/all/20251206014242.GO1712166@ZenIV/
Fixes: ab84ad5973 ("fuse: new work queue to periodically invalidate expired dentries")
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Link: https://patch.msgid.link/20260114145344.468856-2-mszeredi@redhat.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
2026-01-16 19:15:14 +01:00
..
2025-11-16 01:35:04 -05:00
2026-01-11 06:09:11 -10:00
2026-01-02 13:43:41 -05:00
2025-11-16 01:35:03 -05:00
2025-11-04 12:36:33 +01:00
2025-11-28 12:42:31 +01:00
2025-11-12 09:38:34 +01:00
2025-10-07 12:48:33 +02:00
2025-09-01 13:08:01 +02:00
2025-12-16 00:57:29 -05:00
2025-11-05 09:51:30 +01:00
2025-11-04 08:28:34 +01:00
2025-11-12 09:38:34 +01:00