]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
f2fs: use kfree() instead of kvfree() to free some memory
authorJiazi Li <jqqlijiazi@gmail.com>
Thu, 3 Jul 2025 06:13:04 +0000 (14:13 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 9 Jul 2025 17:59:39 +0000 (17:59 +0000)
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>
fs/f2fs/node.c
fs/f2fs/segment.c
fs/f2fs/super.c

index 2fd287f2bca4ba29a47d0bbcf1bb6488f9b70539..be3d38d1fdeec9035fc5d33ca3049da4817bdbfb 100644 (file)
@@ -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);
index b89bdb867508e3ee03f8063e7651576a2d2e0a08..a9c25b498f9caf555511252bd5aa104e436b6e9f 100644 (file)
@@ -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);
index 5a1b2b6e78f3284f1fd05b6d79c2dcab348da07a..73492270ea939d6f1c4c5f1a98626d11fd37140b 100644 (file)
@@ -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 @@ reset_checkpoint:
                if (err)
                        goto sync_free_meta;
        }
-       kvfree(options);
+       kfree(options);
 
        /* recover broken superblock */
        if (recovery) {
@@ -5018,7 +5018,7 @@ free_iostat:
        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 @@ free_options:
                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: