]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/ubifs/super.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.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);
 }
 
 /*