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

> @@ -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);
> @@ -786,7 +784,7 @@ struct eventfs_inode *eventfs_create_events_dir(const 
> char *name, struct dentry
>  
>       /* directory inodes start off with i_nlink == 2 (for "." entry) */
>       inc_nlink(inode);
> -     d_instantiate(dentry, inode);
> +     d_add(dentry, inode);

Now I didn't change this last d_instantiate, because this is not called
through the lookup code. This is the root events directory and acts more
like debugfs. It's not "dynamically" added.

-- Steve


>       inc_nlink(dentry->d_parent->d_inode);
>       fsnotify_mkdir(dentry->d_parent->d_inode, dentry);
>       tracefs_end_creating(dentry);


Reply via email to