diff options
Diffstat (limited to 'fs/ncpfs')
-rw-r--r-- | fs/ncpfs/inode.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/ncpfs/inode.c b/fs/ncpfs/inode.c index 8fb93b604e73..60047dbeb38d 100644 --- a/fs/ncpfs/inode.c +++ b/fs/ncpfs/inode.c | |||
@@ -58,11 +58,18 @@ static struct inode *ncp_alloc_inode(struct super_block *sb) | |||
58 | return &ei->vfs_inode; | 58 | return &ei->vfs_inode; |
59 | } | 59 | } |
60 | 60 | ||
61 | static void ncp_destroy_inode(struct inode *inode) | 61 | static void ncp_i_callback(struct rcu_head *head) |
62 | { | 62 | { |
63 | struct inode *inode = container_of(head, struct inode, i_rcu); | ||
64 | INIT_LIST_HEAD(&inode->i_dentry); | ||
63 | kmem_cache_free(ncp_inode_cachep, NCP_FINFO(inode)); | 65 | kmem_cache_free(ncp_inode_cachep, NCP_FINFO(inode)); |
64 | } | 66 | } |
65 | 67 | ||
68 | static void ncp_destroy_inode(struct inode *inode) | ||
69 | { | ||
70 | call_rcu(&inode->i_rcu, ncp_i_callback); | ||
71 | } | ||
72 | |||
66 | static void init_once(void *foo) | 73 | static void init_once(void *foo) |
67 | { | 74 | { |
68 | struct ncp_inode_info *ei = (struct ncp_inode_info *) foo; | 75 | struct ncp_inode_info *ei = (struct ncp_inode_info *) foo; |