diff options
Diffstat (limited to 'fs/ocfs2/dlmfs/dlmfs.c')
-rw-r--r-- | fs/ocfs2/dlmfs/dlmfs.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c index b2df490a19ed..8c5c0eddc365 100644 --- a/fs/ocfs2/dlmfs/dlmfs.c +++ b/fs/ocfs2/dlmfs/dlmfs.c | |||
@@ -351,11 +351,18 @@ static struct inode *dlmfs_alloc_inode(struct super_block *sb) | |||
351 | return &ip->ip_vfs_inode; | 351 | return &ip->ip_vfs_inode; |
352 | } | 352 | } |
353 | 353 | ||
354 | static void dlmfs_destroy_inode(struct inode *inode) | 354 | static void dlmfs_i_callback(struct rcu_head *head) |
355 | { | 355 | { |
356 | struct inode *inode = container_of(head, struct inode, i_rcu); | ||
357 | INIT_LIST_HEAD(&inode->i_dentry); | ||
356 | kmem_cache_free(dlmfs_inode_cache, DLMFS_I(inode)); | 358 | kmem_cache_free(dlmfs_inode_cache, DLMFS_I(inode)); |
357 | } | 359 | } |
358 | 360 | ||
361 | static void dlmfs_destroy_inode(struct inode *inode) | ||
362 | { | ||
363 | call_rcu(&inode->i_rcu, dlmfs_i_callback); | ||
364 | } | ||
365 | |||
359 | static void dlmfs_evict_inode(struct inode *inode) | 366 | static void dlmfs_evict_inode(struct inode *inode) |
360 | { | 367 | { |
361 | int status; | 368 | int status; |