summaryrefslogtreecommitdiffstats
path: root/fs/ceph/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ceph/inode.c')
-rw-r--r--fs/ceph/inode.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index c2feb310ac1e..35dae6d5493a 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -519,9 +519,8 @@ struct inode *ceph_alloc_inode(struct super_block *sb)
519 return &ci->vfs_inode; 519 return &ci->vfs_inode;
520} 520}
521 521
522static void ceph_i_callback(struct rcu_head *head) 522void ceph_free_inode(struct inode *inode)
523{ 523{
524 struct inode *inode = container_of(head, struct inode, i_rcu);
525 struct ceph_inode_info *ci = ceph_inode(inode); 524 struct ceph_inode_info *ci = ceph_inode(inode);
526 525
527 kfree(ci->i_symlink); 526 kfree(ci->i_symlink);
@@ -581,8 +580,6 @@ void ceph_destroy_inode(struct inode *inode)
581 ceph_buffer_put(ci->i_xattrs.prealloc_blob); 580 ceph_buffer_put(ci->i_xattrs.prealloc_blob);
582 581
583 ceph_put_string(rcu_dereference_raw(ci->i_layout.pool_ns)); 582 ceph_put_string(rcu_dereference_raw(ci->i_layout.pool_ns));
584
585 call_rcu(&inode->i_rcu, ceph_i_callback);
586} 583}
587 584
588int ceph_drop_inode(struct inode *inode) 585int ceph_drop_inode(struct inode *inode)