From: Al Viro Date: Mon, 15 Apr 2019 23:45:26 +0000 (-0400) Subject: gfs2: switch to ->free_inode() X-Git-Tag: v5.15~6463^2~41 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=784494e1d759622fef9fb633f0100935c692adb3;p=platform%2Fkernel%2Flinux-starfive.git gfs2: switch to ->free_inode() ... and use GFS2_I() to get the containing gfs2_inode by inode; yes, we can feed the address of the first member of structure to kmem_cache_free(), but let's do it in an obviously safe way. Signed-off-by: Al Viro --- diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index ca71163..7b8d230 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c @@ -1736,20 +1736,14 @@ static struct inode *gfs2_alloc_inode(struct super_block *sb) return &ip->i_inode; } -static void gfs2_i_callback(struct rcu_head *head) +static void gfs2_free_inode(struct inode *inode) { - struct inode *inode = container_of(head, struct inode, i_rcu); - kmem_cache_free(gfs2_inode_cachep, inode); -} - -static void gfs2_destroy_inode(struct inode *inode) -{ - call_rcu(&inode->i_rcu, gfs2_i_callback); + kmem_cache_free(gfs2_inode_cachep, GFS2_I(inode)); } const struct super_operations gfs2_super_ops = { .alloc_inode = gfs2_alloc_inode, - .destroy_inode = gfs2_destroy_inode, + .free_inode = gfs2_free_inode, .write_inode = gfs2_write_inode, .dirty_inode = gfs2_dirty_inode, .evict_inode = gfs2_evict_inode,