eventfs: Make sure that parent->d_inode is locked in creating files/dirs
authorSteven Rostedt (Google) <rostedt@goodmis.org>
Tue, 21 Nov 2023 23:10:07 +0000 (18:10 -0500)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Wed, 22 Nov 2023 23:37:33 +0000 (18:37 -0500)
Since the locking of the parent->d_inode has been moved outside the
creation of the files and directories (as it use to be locked via a
conditional), add a WARN_ON_ONCE() to the case that it's not locked.

Link: https://lkml.kernel.org/r/20231121231112.853962542@goodmis.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
fs/tracefs/event_inode.c

index 590e8176449b966c781ee8317edcb20c022faff6..0b90869fd805cd62ab6db7cf924ee0cad8c86eaf 100644 (file)
@@ -327,6 +327,8 @@ create_file_dentry(struct eventfs_inode *ei, int idx,
        struct dentry **e_dentry = &ei->d_children[idx];
        struct dentry *dentry;
 
+       WARN_ON_ONCE(!inode_is_locked(parent->d_inode));
+
        mutex_lock(&eventfs_mutex);
        if (ei->is_freed) {
                mutex_unlock(&eventfs_mutex);
@@ -430,6 +432,8 @@ create_dir_dentry(struct eventfs_inode *pei, struct eventfs_inode *ei,
 {
        struct dentry *dentry = NULL;
 
+       WARN_ON_ONCE(!inode_is_locked(parent->d_inode));
+
        mutex_lock(&eventfs_mutex);
        if (pei->is_freed || ei->is_freed) {
                mutex_unlock(&eventfs_mutex);