@@ -53,24 +53,21 @@ static struct inode *tracefs_alloc_inode(struct super_block *sb)
53
53
return & ti -> vfs_inode ;
54
54
}
55
55
56
- static void tracefs_free_inode_rcu (struct rcu_head * rcu )
56
+ static void tracefs_free_inode (struct inode * inode )
57
57
{
58
- struct tracefs_inode * ti ;
58
+ struct tracefs_inode * ti = get_tracefs ( inode ) ;
59
59
60
- ti = container_of (rcu , struct tracefs_inode , rcu );
61
60
kmem_cache_free (tracefs_inode_cachep , ti );
62
61
}
63
62
64
- static void tracefs_free_inode (struct inode * inode )
63
+ static void tracefs_destroy_inode (struct inode * inode )
65
64
{
66
65
struct tracefs_inode * ti = get_tracefs (inode );
67
66
unsigned long flags ;
68
67
69
68
spin_lock_irqsave (& tracefs_inode_lock , flags );
70
69
list_del_rcu (& ti -> list );
71
70
spin_unlock_irqrestore (& tracefs_inode_lock , flags );
72
-
73
- call_rcu (& ti -> rcu , tracefs_free_inode_rcu );
74
71
}
75
72
76
73
static ssize_t default_read_file (struct file * file , char __user * buf ,
@@ -437,6 +434,7 @@ static int tracefs_drop_inode(struct inode *inode)
437
434
static const struct super_operations tracefs_super_operations = {
438
435
.alloc_inode = tracefs_alloc_inode ,
439
436
.free_inode = tracefs_free_inode ,
437
+ .destroy_inode = tracefs_destroy_inode ,
440
438
.drop_inode = tracefs_drop_inode ,
441
439
.statfs = simple_statfs ,
442
440
.show_options = tracefs_show_options ,
0 commit comments