init_f2fs_fs does:
    1) f2fs_build_trace_ios
    2) init_inodecache
    3) create_node_manager_caches
    4) create_segment_manager_caches
    5) create_checkpoint_caches
    6) create_extent_cache
    7) kset_create_and_add
    8) kobject_init_and_add
    9) register_shrinker
    10) register_filesystem
    11) f2fs_create_root_stats
    12) proc_mkdir

exit_f2fs_fs should do cleanup in the reverse order
to make the code more clear.

Signed-off-by: Tiezhu Yang <kernelpa...@126.com>
---
 fs/f2fs/super.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index bbfeb6a..741fba1 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -1928,17 +1928,17 @@ static void __exit exit_f2fs_fs(void)
 {
        remove_proc_entry("fs/f2fs", NULL);
        f2fs_destroy_root_stats();
-       unregister_shrinker(&f2fs_shrinker_info);
        unregister_filesystem(&f2fs_fs_type);
+       unregister_shrinker(&f2fs_shrinker_info);
+#ifdef CONFIG_F2FS_FAULT_INJECTION
+       kobject_put(&f2fs_fault_inject);
+#endif
+       kset_unregister(f2fs_kset);
        destroy_extent_cache();
        destroy_checkpoint_caches();
        destroy_segment_manager_caches();
        destroy_node_manager_caches();
        destroy_inodecache();
-#ifdef CONFIG_F2FS_FAULT_INJECTION
-       kobject_put(&f2fs_fault_inject);
-#endif
-       kset_unregister(f2fs_kset);
        f2fs_destroy_trace_ios();
 }
 
-- 
1.8.3.1

Reply via email to