diff options
author | Theodore Ts'o <tytso@mit.edu> | 2013-01-24 23:24:54 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2013-01-24 23:24:54 -0500 |
commit | 72ba74508b2857e71d65fc93f0d6b684492fc740 (patch) | |
tree | 98fe6b50a7454f8804265e25b48e95d873cacfb4 /fs/ext4/super.c | |
parent | aaddea812cb0a2dc38b55ba557b68999bc2f6203 (diff) | |
download | linux-stable-72ba74508b2857e71d65fc93f0d6b684492fc740.tar.gz linux-stable-72ba74508b2857e71d65fc93f0d6b684492fc740.tar.bz2 linux-stable-72ba74508b2857e71d65fc93f0d6b684492fc740.zip |
ext4: release sysfs kobject when failing to enable quotas on mount
In addition, print the error returned from ext4_enable_quotas()
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Cc: stable@vger.kernel.org
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r-- | fs/ext4/super.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index c014edd12648..3ac306064b28 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -4009,7 +4009,7 @@ no_journal: !(sb->s_flags & MS_RDONLY)) { err = ext4_enable_quotas(sb); if (err) - goto failed_mount7; + goto failed_mount8; } #endif /* CONFIG_QUOTA */ @@ -4036,6 +4036,10 @@ cantfind_ext4: ext4_msg(sb, KERN_ERR, "VFS: Can't find ext4 filesystem"); goto failed_mount; +#ifdef CONFIG_QUOTA +failed_mount8: + kobject_del(&sbi->s_kobj); +#endif failed_mount7: ext4_unregister_li_request(sb); failed_mount6: @@ -5006,9 +5010,9 @@ static int ext4_enable_quotas(struct super_block *sb) DQUOT_USAGE_ENABLED); if (err) { ext4_warning(sb, - "Failed to enable quota (type=%d) " - "tracking. Please run e2fsck to fix.", - type); + "Failed to enable quota tracking " + "(type=%d, err=%d). Please run " + "e2fsck to fix.", type, err); return err; } } |