projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fs: icache RCU free inodes
[deliverable/linux.git]
/
fs
/
adfs
/
super.c
diff --git
a/fs/adfs/super.c
b/fs/adfs/super.c
index 959dbff2d42dc4a0a0026e3b3aad5f7f0008a7f3..47dffc513a263a0f1943ce9c510a9d80ea3e3195 100644
(file)
--- a/
fs/adfs/super.c
+++ b/
fs/adfs/super.c
@@
-240,11
+240,18
@@
static struct inode *adfs_alloc_inode(struct super_block *sb)
return &ei->vfs_inode;
}
return &ei->vfs_inode;
}
-static void adfs_
destroy_inode(struct inode *inode
)
+static void adfs_
i_callback(struct rcu_head *head
)
{
{
+ struct inode *inode = container_of(head, struct inode, i_rcu);
+ INIT_LIST_HEAD(&inode->i_dentry);
kmem_cache_free(adfs_inode_cachep, ADFS_I(inode));
}
kmem_cache_free(adfs_inode_cachep, ADFS_I(inode));
}
+static void adfs_destroy_inode(struct inode *inode)
+{
+ call_rcu(&inode->i_rcu, adfs_i_callback);
+}
+
static void init_once(void *foo)
{
struct adfs_inode_info *ei = (struct adfs_inode_info *) foo;
static void init_once(void *foo)
{
struct adfs_inode_info *ei = (struct adfs_inode_info *) foo;
This page took
0.028843 seconds
and
5
git commands to generate.