f2fs: fix memory leak when init f2fs filesystem fail
PATCH 1/1 f2fs: fix memory leak when init f2fs filesystem fail
When any of the caches create fails in init_f2fs_fs(), the other caches which are create successful should be free.
Signed-off-by Zhao Hongjiang <[email protected]>
--- fs/f2fs/super.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-)
fs/f2fs/super.c +13 -4
@@ -841,17 +841,26 @@ static int __init init_f2fs_fs(void) goto fail; err =create_node_manager_caches ();if (err) - goto fail; + goto free_inodecache; err =create_gc_caches ();if (err) - goto fail; + goto free_node_manager_caches; err =create_checkpoint_caches ();if (err) - goto fail; + goto free_gc_caches; err =register_filesystem (&f2fs_fs_type);if (err) - goto fail; + goto free_checkpoint_caches;f2fs_create_root_stats (); + +free_checkpoint_caches: +destroy_checkpoint_caches (); +free_gc_caches: +destroy_gc_caches (); +free_node_manager_caches: +destroy_node_manager_caches (); +free_inodecache: +destroy_inodecache (); fail:return err; }
Signature · 9 lines
1.8.2.2 ------------------------------------------------------------------------------ Introducing Performance Central, a new site from SourceForge and AppDynamics. Performance Central is your source for news, insights, analysis and resources for efficient Application Performance Management. Visit us today! http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
Hi,
I think you'd like to make a patch like below.
If no objection, I'll merge this.
Thank you,
Change log:
o add return 0;
o make a patch with the latest f2fs
Quoted 1 line
From
9890ff3f23ed78c63611f661006cd5ae38550f44Mon Sep 17 00:00:00 2001
From: Zhao Hongjiang <[email protected]>
Date: Tue, 20 Aug 2013 16:49:51 +0800
Subject: [PATCH] f2fs: fix memory leak when init f2fs filesystem fail
Cc: [email protected], [email protected], [email protected]
When any of the caches create fails in init_f2fs_fs(), the other caches which are
create successful should be free.
Signed-off-by Zhao Hongjiang <[email protected]>
Signed-off-by Jaegeuk Kim <[email protected]>
--- fs/f2fs/super.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-)
fs/f2fs/super.c +17 -5
@@ -1004,21 +1004,33 @@ static int __init init_f2fs_fs(void) goto fail; err =create_node_manager_caches ();if (err) - goto fail; + goto free_inodecache; err =create_gc_caches ();if (err) - goto fail; + goto free_node_manager_caches; err =create_checkpoint_caches ();if (err) - goto fail; + goto free_gc_caches; f2fs_kset =kset_create_and_add ("f2fs" ,NULL , fs_kobj);if (!f2fs_kset) - goto fail; + goto free_checkpoint_caches; err =register_filesystem (&f2fs_fs_type);if (err) - goto fail; + goto free_kset;f2fs_create_root_stats (); f2fs_proc_root =proc_mkdir ("fs/f2fs" ,NULL ); +return 0 ; + +free_kset: +kset_unregister (f2fs_kset); +free_checkpoint_caches: +destroy_checkpoint_caches (); +free_gc_caches: +destroy_gc_caches (); +free_node_manager_caches: +destroy_node_manager_caches (); +free_inodecache: +destroy_inodecache (); fail:return err; }
Signature · 14 lines
1.8.3.1.437.g0dbd812 -- Jaegeuk Kim Samsung ------------------------------------------------------------------------------ Introducing Performance Central, a new site from SourceForge and AppDynamics. Performance Central is your source for news, insights, analysis and resources for efficient Application Performance Management. Visit us today! http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk