On Tue, Jan 30, 2024 at 06:55:36PM -0500, Steven Rostedt wrote: > Actually it's the tracefs_start_creating() locks the inode, the > eventfs_start_creating() doesn't.
Right. > > > > > if (unlikely(!inode)) > > > return eventfs_failed_creating(dentry); > > > > ... and that still unlocks it. This is still bogus, though - both the stray dput() and dropping a reference to internal mount. struct dentry *eventfs_failed_creating(struct dentry *dentry) { dput(dentry); simple_release_fs(&tracefs_mount, &tracefs_mount_count); return NULL; }