diff options
| author | Patrick McHardy <[email protected]> | 2011-01-14 14:12:37 +0100 |
|---|---|---|
| committer | Patrick McHardy <[email protected]> | 2011-01-14 14:12:37 +0100 |
| commit | 0134e89c7bcc9fde1da962c82a120691e185619f (patch) | |
| tree | 3e03335cf001019a2687d161e956de4f73379984 /fs/xfs/xfs_iget.c | |
| parent | c7066f70d9610df0b9406cc635fc09e86136e714 (diff) | |
| parent | 6faee60a4e82075853a437831768cc9e2e563e4e (diff) | |
Merge branch 'master' of git://1984.lsi.us.es/net-next-2.6
Conflicts:
net/ipv4/route.c
Signed-off-by: Patrick McHardy <[email protected]>
Diffstat (limited to 'fs/xfs/xfs_iget.c')
| -rw-r--r-- | fs/xfs/xfs_iget.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 0cdd26932d8e..d7de5a3f7867 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -91,6 +91,17 @@ xfs_inode_alloc( return ip; } +STATIC void +xfs_inode_free_callback( + struct rcu_head *head) +{ + struct inode *inode = container_of(head, struct inode, i_rcu); + struct xfs_inode *ip = XFS_I(inode); + + INIT_LIST_HEAD(&inode->i_dentry); + kmem_zone_free(xfs_inode_zone, ip); +} + void xfs_inode_free( struct xfs_inode *ip) @@ -134,7 +145,7 @@ xfs_inode_free( ASSERT(!spin_is_locked(&ip->i_flags_lock)); ASSERT(completion_done(&ip->i_flush)); - kmem_zone_free(xfs_inode_zone, ip); + call_rcu(&ip->i_vnode.i_rcu, xfs_inode_free_callback); } /* |