lkml.org 
[lkml]   [2020]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] mm/shmem: use kmem_cache_zalloc in shmem_alloc_inode()
Date
On 11/15/20 6:40 PM, Hui Su wrote:
> in shmem_get_inode():
> new_inode();
> new_inode_pseudo();
> alloc_inode();
> ops->alloc_inode(); -> shmem_alloc_inode()
> kmem_cache_alloc();
>
> memset(info, 0, (char *)inode - (char *)info);
>
> So use kmem_cache_zalloc() in shmem_alloc_inode(),
> and remove the memset in shmem_get_inode().
>
> Signed-off-by: Hui Su <sh_def@163.com>

Looks correct, but now we clear also the inode part which seems to be handled by
alloc_inode() well enough. So, unsure. btrfs and ext4 variants don't use kzalloc
neither. It's also more obvious with the current way that the info is cleared. Hmm?

> ---
> mm/shmem.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 537c137698f8..b84adda45461 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -2308,7 +2308,6 @@ static struct inode *shmem_get_inode(struct super_block *sb, const struct inode
> inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
> inode->i_generation = prandom_u32();
> info = SHMEM_I(inode);
> - memset(info, 0, (char *)inode - (char *)info);
> spin_lock_init(&info->lock);
> atomic_set(&info->stop_eviction, 0);
> info->seals = F_SEAL_SEAL;
> @@ -3828,7 +3827,7 @@ static struct kmem_cache *shmem_inode_cachep;
> static struct inode *shmem_alloc_inode(struct super_block *sb)
> {
> struct shmem_inode_info *info;
> - info = kmem_cache_alloc(shmem_inode_cachep, GFP_KERNEL);
> + info = kmem_cache_zalloc(shmem_inode_cachep, GFP_KERNEL);
> if (!info)
> return NULL;
> return &info->vfs_inode;
>

\
 
 \ /
  Last update: 2020-11-27 18:27    [W:0.044 / U:1.132 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site