提交 9b61780a 编写于 作者: Z zhong jiang 提交者: Xie XiuQi

Revert "hugetlbfs: fix memory leak for resv_map"

euler inclusion
category: bugfix
bugzilla: 16023
CVE: NA

-------------------------------------------------

This reverts commit 4071356cf5d605305f53ccaf5bdba6ba3f4dd59c.
Signed-off-by: Nzhong jiang <zhongjiang@huawei.com>
Reviewed-by: NYufen Yu <yuyufen@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 f798aca7
......@@ -482,15 +482,11 @@ static void hugetlbfs_evict_inode(struct inode *inode)
{
struct resv_map *resv_map;
struct hugetlbfs_inode_info *info = HUGETLBFS_I(inode);
remove_inode_hugepages(inode, 0, LLONG_MAX);
resv_map = info->resv_map;
resv_map = (struct resv_map *)inode->i_mapping->private_data;
/* root inode doesn't have the resv_map, so we should check it */
if (resv_map) {
if (resv_map)
resv_map_release(&resv_map->refs);
info->resv_map = NULL;
}
clear_inode(inode);
}
......@@ -759,7 +755,7 @@ static struct inode *hugetlbfs_get_inode(struct super_block *sb,
&hugetlbfs_i_mmap_rwsem_key);
inode->i_mapping->a_ops = &hugetlbfs_aops;
inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
info->resv_map = resv_map;
inode->i_mapping->private_data = resv_map;
info->seals = F_SEAL_SEAL;
switch (mode & S_IFMT) {
default:
......@@ -1027,7 +1023,6 @@ static struct inode *hugetlbfs_alloc_inode(struct super_block *sb)
* private inode. This simplifies hugetlbfs_destroy_inode.
*/
mpol_shared_policy_init(&p->policy, NULL);
p->resv_map = NULL;
return &p->vfs_inode;
}
......@@ -1042,7 +1037,6 @@ static void hugetlbfs_destroy_inode(struct inode *inode)
{
hugetlbfs_inc_free_inodes(HUGETLBFS_SB(inode->i_sb));
mpol_free_shared_policy(&HUGETLBFS_I(inode)->policy);
HUGETLBFS_I(inode)->resv_map = NULL;
call_rcu(&inode->i_rcu, hugetlbfs_i_callback);
}
......
......@@ -289,7 +289,6 @@ struct hugetlbfs_inode_info {
struct shared_policy policy;
struct inode vfs_inode;
unsigned int seals;
struct resv_map *resv_map;
};
static inline struct hugetlbfs_inode_info *HUGETLBFS_I(struct inode *inode)
......
......@@ -739,7 +739,7 @@ void resv_map_release(struct kref *ref)
static inline struct resv_map *inode_resv_map(struct inode *inode)
{
return HUGETLBFS_I(inode)->resv_map;
return inode->i_mapping->private_data;
}
static struct resv_map *vma_resv_map(struct vm_area_struct *vma)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册