fs: icache RCU free inodes
[deliverable/linux.git] / fs / ubifs / super.c
index 91fac54c70e32b3a304c5060fbaa3de68995f5e4..6e11c2975dcf504ae447d0132bb58297d24da428 100644 (file)
@@ -272,12 +272,20 @@ static struct inode *ubifs_alloc_inode(struct super_block *sb)
        return &ui->vfs_inode;
 };
 
+static void ubifs_i_callback(struct rcu_head *head)
+{
+       struct inode *inode = container_of(head, struct inode, i_rcu);
+       struct ubifs_inode *ui = ubifs_inode(inode);
+       INIT_LIST_HEAD(&inode->i_dentry);
+       kmem_cache_free(ubifs_inode_slab, ui);
+}
+
 static void ubifs_destroy_inode(struct inode *inode)
 {
        struct ubifs_inode *ui = ubifs_inode(inode);
 
        kfree(ui->data);
-       kmem_cache_free(ubifs_inode_slab, inode);
+       call_rcu(&inode->i_rcu, ubifs_i_callback);
 }
 
 /*
This page took 0.024147 seconds and 5 git commands to generate.