Files
linux/fs
Steven Rostedt (Google) 020010fbfa eventfs: Delete eventfs_inode when the last dentry is freed
There exists a race between holding a reference of an eventfs_inode dentry
and the freeing of the eventfs_inode. If user space has a dentry held long
enough, it may still be able to access the dentry's eventfs_inode after it
has been freed.

To prevent this, have he eventfs_inode freed via the last dput() (or via
RCU if the eventfs_inode does not have a dentry).

This means reintroducing the eventfs_inode del_list field at a temporary
place to put the eventfs_inode. It needs to mark it as freed (via the
list) but also must invalidate the dentry immediately as the return from
eventfs_remove_dir() expects that they are. But the dentry invalidation
must not be called under the eventfs_mutex, so it must be done after the
eventfs_inode is marked as free (put on a deletion list).

Link: https://lkml.kernel.org/r/20231101172650.123479767@goodmis.org

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Ajay Kaher <akaher@vmware.com>
Fixes: 5bdcd5f533 ("eventfs: Implement removal of meta data from eventfs")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2023-11-02 00:17:27 -04:00
..
2023-09-18 16:26:24 +02:00
2023-08-29 17:45:22 -04:00
2023-08-31 12:07:34 -05:00
2023-06-15 13:37:53 +02:00
2023-06-28 20:35:21 -07:00
2023-05-17 09:16:59 +02:00
2023-08-24 16:20:30 -07:00
2023-07-26 14:56:07 +02:00
2023-08-08 19:36:51 +02:00
2023-08-21 13:46:25 -07:00
2023-08-14 18:48:02 +02:00
2023-08-19 12:12:12 +02:00
2023-08-02 09:13:09 -06:00
2023-08-19 12:12:12 +02:00
2023-07-13 10:28:04 +02:00
2023-05-19 04:30:22 +02:00
2023-05-19 04:30:22 +02:00
2023-08-15 08:32:45 +02:00
2023-08-31 12:47:15 +02:00