On Mon, 29 Jan 2024 14:35:37 -0800
Linus Torvalds <torva...@linux-foundation.org> wrote:

> And I hope there aren't any other stupid things I missed like that.

Well the preliminary tests pass with this added to your patch:

diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c
index cd6de3244442..ad11063bdd53 100644
--- a/fs/tracefs/event_inode.c
+++ b/fs/tracefs/event_inode.c
@@ -230,7 +230,6 @@ static struct eventfs_inode *eventfs_find_events(struct 
dentry *dentry)
 {
        struct eventfs_inode *ei;
 
-       mutex_lock(&eventfs_mutex);
        do {
                // The parent is stable because we do not do renames
                dentry = dentry->d_parent;
@@ -247,7 +246,6 @@ static struct eventfs_inode *eventfs_find_events(struct 
dentry *dentry)
                }
                // Walk upwards until you find the events inode
        } while (!ei->is_events);
-       mutex_unlock(&eventfs_mutex);
 
        update_top_events_attr(ei, dentry->d_sb);
 
@@ -324,7 +322,7 @@ static struct dentry *lookup_file(struct dentry *dentry,
        ti->flags = TRACEFS_EVENT_INODE;
        ti->private = NULL;                     // Directories have 'ei', files 
not
 
-       d_instantiate(dentry, inode);
+       d_add(dentry, inode);
        fsnotify_create(dentry->d_parent->d_inode, dentry);
        return eventfs_end_creating(dentry);
 };
@@ -365,7 +363,7 @@ static struct dentry *lookup_dir_entry(struct dentry 
*dentry,
         ei->dentry = dentry;   // Remove me!
 
        inc_nlink(inode);
-       d_instantiate(dentry, inode);
+       d_add(dentry, inode);
        inc_nlink(dentry->d_parent->d_inode);
        fsnotify_mkdir(dentry->d_parent->d_inode, dentry);
        return eventfs_end_creating(dentry);

-- Steve

Reply via email to