@@ -53,24 +53,21 @@ static struct inode *tracefs_alloc_inode(struct super_block *sb)
5353 return & ti -> vfs_inode ;
5454}
5555
56- static void tracefs_free_inode_rcu (struct rcu_head * rcu )
56+ static void tracefs_free_inode (struct inode * inode )
5757{
58- struct tracefs_inode * ti ;
58+ struct tracefs_inode * ti = get_tracefs ( inode ) ;
5959
60- ti = container_of (rcu , struct tracefs_inode , rcu );
6160 kmem_cache_free (tracefs_inode_cachep , ti );
6261}
6362
64- static void tracefs_free_inode (struct inode * inode )
63+ static void tracefs_destroy_inode (struct inode * inode )
6564{
6665 struct tracefs_inode * ti = get_tracefs (inode );
6766 unsigned long flags ;
6867
6968 spin_lock_irqsave (& tracefs_inode_lock , flags );
7069 list_del_rcu (& ti -> list );
7170 spin_unlock_irqrestore (& tracefs_inode_lock , flags );
72-
73- call_rcu (& ti -> rcu , tracefs_free_inode_rcu );
7471}
7572
7673static ssize_t default_read_file (struct file * file , char __user * buf ,
@@ -437,6 +434,7 @@ static int tracefs_drop_inode(struct inode *inode)
437434static const struct super_operations tracefs_super_operations = {
438435 .alloc_inode = tracefs_alloc_inode ,
439436 .free_inode = tracefs_free_inode ,
437+ .destroy_inode = tracefs_destroy_inode ,
440438 .drop_inode = tracefs_drop_inode ,
441439 .statfs = simple_statfs ,
442440 .show_options = tracefs_show_options ,
0 commit comments