shmem: make use of ->free_inode()
same situation as for hugetlbfs Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
b62de32257
commit
74b1da5645
|
@ -3635,9 +3635,8 @@ static struct inode *shmem_alloc_inode(struct super_block *sb)
|
||||||
return &info->vfs_inode;
|
return &info->vfs_inode;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void shmem_destroy_callback(struct rcu_head *head)
|
static void shmem_free_in_core_inode(struct inode *inode)
|
||||||
{
|
{
|
||||||
struct inode *inode = container_of(head, struct inode, i_rcu);
|
|
||||||
if (S_ISLNK(inode->i_mode))
|
if (S_ISLNK(inode->i_mode))
|
||||||
kfree(inode->i_link);
|
kfree(inode->i_link);
|
||||||
kmem_cache_free(shmem_inode_cachep, SHMEM_I(inode));
|
kmem_cache_free(shmem_inode_cachep, SHMEM_I(inode));
|
||||||
|
@ -3647,7 +3646,6 @@ static void shmem_destroy_inode(struct inode *inode)
|
||||||
{
|
{
|
||||||
if (S_ISREG(inode->i_mode))
|
if (S_ISREG(inode->i_mode))
|
||||||
mpol_free_shared_policy(&SHMEM_I(inode)->policy);
|
mpol_free_shared_policy(&SHMEM_I(inode)->policy);
|
||||||
call_rcu(&inode->i_rcu, shmem_destroy_callback);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void shmem_init_inode(void *foo)
|
static void shmem_init_inode(void *foo)
|
||||||
|
@ -3738,6 +3736,7 @@ static const struct inode_operations shmem_special_inode_operations = {
|
||||||
|
|
||||||
static const struct super_operations shmem_ops = {
|
static const struct super_operations shmem_ops = {
|
||||||
.alloc_inode = shmem_alloc_inode,
|
.alloc_inode = shmem_alloc_inode,
|
||||||
|
.free_inode = shmem_free_in_core_inode,
|
||||||
.destroy_inode = shmem_destroy_inode,
|
.destroy_inode = shmem_destroy_inode,
|
||||||
#ifdef CONFIG_TMPFS
|
#ifdef CONFIG_TMPFS
|
||||||
.statfs = shmem_statfs,
|
.statfs = shmem_statfs,
|
||||||
|
|
Loading…
Reference in New Issue