ext4: mballoc: simplify error handling in ext4_init_mballoc()
authorRitesh Harjani <riteshh@linux.ibm.com>
Sun, 10 May 2020 06:24:46 +0000 (11:54 +0530)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 4 Jun 2020 03:16:51 +0000 (23:16 -0400)
This patch simplifies error handling logic in ext4_init_mballoc(),
by adding all the cleanups at one place at the end of that function.

There should be no functionality change in this patch.

Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
Link: https://lore.kernel.org/r/8621a7bc68f7107a9ac4292afeb784515333bd25.1589086800.git.riteshh@linux.ibm.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/mballoc.c

index 4ada63c..aaf43c6 100644 (file)
@@ -2913,23 +2913,26 @@ int __init ext4_init_mballoc(void)
        ext4_pspace_cachep = KMEM_CACHE(ext4_prealloc_space,
                                        SLAB_RECLAIM_ACCOUNT);
        if (ext4_pspace_cachep == NULL)
-               return -ENOMEM;
+               goto out;
 
        ext4_ac_cachep = KMEM_CACHE(ext4_allocation_context,
                                    SLAB_RECLAIM_ACCOUNT);
-       if (ext4_ac_cachep == NULL) {
-               kmem_cache_destroy(ext4_pspace_cachep);
-               return -ENOMEM;
-       }
+       if (ext4_ac_cachep == NULL)
+               goto out_pa_free;
 
        ext4_free_data_cachep = KMEM_CACHE(ext4_free_data,
                                           SLAB_RECLAIM_ACCOUNT);
-       if (ext4_free_data_cachep == NULL) {
-               kmem_cache_destroy(ext4_pspace_cachep);
-               kmem_cache_destroy(ext4_ac_cachep);
-               return -ENOMEM;
-       }
+       if (ext4_free_data_cachep == NULL)
+               goto out_ac_free;
+
        return 0;
+
+out_ac_free:
+       kmem_cache_destroy(ext4_ac_cachep);
+out_pa_free:
+       kmem_cache_destroy(ext4_pspace_cachep);
+out:
+       return -ENOMEM;
 }
 
 void ext4_exit_mballoc(void)