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