mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 16:44:58 +02:00
f2fs: use kfree() instead of kvfree() to free some memory
options in f2fs_fill_super is alloc by kstrdup: options = kstrdup((const char *)data, GFP_KERNEL) sit_bitmap[_mir], nat_bitmap[_mir] are alloc by kmemdup: sit_i->sit_bitmap = kmemdup(src_bitmap, sit_bitmap_size, GFP_KERNEL); sit_i->sit_bitmap_mir = kmemdup(src_bitmap, sit_bitmap_size, GFP_KERNEL); nm_i->nat_bitmap = kmemdup(version_bitmap, nm_i->bitmap_size, GFP_KERNEL); nm_i->nat_bitmap_mir = kmemdup(version_bitmap, nm_i->bitmap_size, GFP_KERNEL); write_io is alloc by f2fs_kmalloc: sbi->write_io[i] = f2fs_kmalloc(sbi, array_size(n, sizeof(struct f2fs_bio_info)) Use kfree is more efficient. Signed-off-by: Jiazi Li <jqqlijiazi@gmail.com> Signed-off-by: peixuan.qiu <peixuan.qiu@transsion.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
8f4688591d
commit
e9705c61b1
|
|
@ -3408,10 +3408,10 @@ void f2fs_destroy_node_manager(struct f2fs_sb_info *sbi)
|
|||
}
|
||||
kvfree(nm_i->free_nid_count);
|
||||
|
||||
kvfree(nm_i->nat_bitmap);
|
||||
kfree(nm_i->nat_bitmap);
|
||||
kvfree(nm_i->nat_bits);
|
||||
#ifdef CONFIG_F2FS_CHECK_FS
|
||||
kvfree(nm_i->nat_bitmap_mir);
|
||||
kfree(nm_i->nat_bitmap_mir);
|
||||
#endif
|
||||
sbi->nm_info = NULL;
|
||||
kfree(nm_i);
|
||||
|
|
|
|||
|
|
@ -5813,9 +5813,9 @@ static void destroy_sit_info(struct f2fs_sb_info *sbi)
|
|||
kvfree(sit_i->dirty_sentries_bitmap);
|
||||
|
||||
SM_I(sbi)->sit_info = NULL;
|
||||
kvfree(sit_i->sit_bitmap);
|
||||
kfree(sit_i->sit_bitmap);
|
||||
#ifdef CONFIG_F2FS_CHECK_FS
|
||||
kvfree(sit_i->sit_bitmap_mir);
|
||||
kfree(sit_i->sit_bitmap_mir);
|
||||
kvfree(sit_i->invalid_segmap);
|
||||
#endif
|
||||
kfree(sit_i);
|
||||
|
|
|
|||
|
|
@ -1718,7 +1718,7 @@ static void f2fs_put_super(struct super_block *sb)
|
|||
destroy_percpu_info(sbi);
|
||||
f2fs_destroy_iostat(sbi);
|
||||
for (i = 0; i < NR_PAGE_TYPE; i++)
|
||||
kvfree(sbi->write_io[i]);
|
||||
kfree(sbi->write_io[i]);
|
||||
#if IS_ENABLED(CONFIG_UNICODE)
|
||||
utf8_unload(sb->s_encoding);
|
||||
#endif
|
||||
|
|
@ -4935,7 +4935,7 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
|
|||
if (err)
|
||||
goto sync_free_meta;
|
||||
}
|
||||
kvfree(options);
|
||||
kfree(options);
|
||||
|
||||
/* recover broken superblock */
|
||||
if (recovery) {
|
||||
|
|
@ -5018,7 +5018,7 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
|
|||
f2fs_destroy_iostat(sbi);
|
||||
free_bio_info:
|
||||
for (i = 0; i < NR_PAGE_TYPE; i++)
|
||||
kvfree(sbi->write_io[i]);
|
||||
kfree(sbi->write_io[i]);
|
||||
|
||||
#if IS_ENABLED(CONFIG_UNICODE)
|
||||
utf8_unload(sb->s_encoding);
|
||||
|
|
@ -5030,7 +5030,7 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
|
|||
kfree(F2FS_OPTION(sbi).s_qf_names[i]);
|
||||
#endif
|
||||
fscrypt_free_dummy_policy(&F2FS_OPTION(sbi).dummy_enc_policy);
|
||||
kvfree(options);
|
||||
kfree(options);
|
||||
free_sb_buf:
|
||||
kfree(raw_super);
|
||||
free_sbi:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user