diff options
author | Theodore Ts'o <tytso@mit.edu> | 2011-02-03 14:33:49 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2011-02-03 14:33:49 -0500 |
commit | dd68314ccf3fb918c1fb6471817edbc60ece4b52 (patch) | |
tree | 9faa6b90bfafcd3dbaac1df206df7f56e537030e /fs | |
parent | 8f021222c1e2756ea4c9dde93b23e1d2a0a4ec37 (diff) | |
download | linux-dd68314ccf3fb918c1fb6471817edbc60ece4b52.tar.gz linux-dd68314ccf3fb918c1fb6471817edbc60ece4b52.tar.bz2 linux-dd68314ccf3fb918c1fb6471817edbc60ece4b52.zip |
ext4: fix up ext4 error handling
Make sure we the correct cleanup happens if we die while trying to
load the ext4 file system.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ext4/super.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 4898cb1ff606..86b05486dc63 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -4810,13 +4810,17 @@ static int __init ext4_init_fs(void) return err; err = ext4_init_system_zone(); if (err) - goto out5; + goto out7; ext4_kset = kset_create_and_add("ext4", NULL, fs_kobj); if (!ext4_kset) - goto out4; + goto out6; ext4_proc_root = proc_mkdir("fs/ext4", NULL); + if (!ext4_proc_root) + goto out5; err = ext4_init_feat_adverts(); + if (err) + goto out4; err = ext4_init_mballoc(); if (err) @@ -4847,11 +4851,13 @@ out2: ext4_exit_mballoc(); out3: ext4_exit_feat_adverts(); +out4: remove_proc_entry("fs/ext4", NULL); +out5: kset_unregister(ext4_kset); -out4: +out6: ext4_exit_system_zone(); -out5: +out7: ext4_exit_pageio(); return err; } |