diff options
Diffstat (limited to 'fs/openpromfs/inode.c')
-rw-r--r-- | fs/openpromfs/inode.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/openpromfs/inode.c b/fs/openpromfs/inode.c index 911e61f348fc..a2a5bff774e3 100644 --- a/fs/openpromfs/inode.c +++ b/fs/openpromfs/inode.c | |||
@@ -343,11 +343,18 @@ static struct inode *openprom_alloc_inode(struct super_block *sb) | |||
343 | return &oi->vfs_inode; | 343 | return &oi->vfs_inode; |
344 | } | 344 | } |
345 | 345 | ||
346 | static void openprom_destroy_inode(struct inode *inode) | 346 | static void openprom_i_callback(struct rcu_head *head) |
347 | { | 347 | { |
348 | struct inode *inode = container_of(head, struct inode, i_rcu); | ||
349 | INIT_LIST_HEAD(&inode->i_dentry); | ||
348 | kmem_cache_free(op_inode_cachep, OP_I(inode)); | 350 | kmem_cache_free(op_inode_cachep, OP_I(inode)); |
349 | } | 351 | } |
350 | 352 | ||
353 | static void openprom_destroy_inode(struct inode *inode) | ||
354 | { | ||
355 | call_rcu(&inode->i_rcu, openprom_i_callback); | ||
356 | } | ||
357 | |||
351 | static struct inode *openprom_iget(struct super_block *sb, ino_t ino) | 358 | static struct inode *openprom_iget(struct super_block *sb, ino_t ino) |
352 | { | 359 | { |
353 | struct inode *inode; | 360 | struct inode *inode; |