]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ext4: release sysfs kobject when failing to enable quotas on mount
authorTheodore Ts'o <tytso@mit.edu>
Fri, 25 Jan 2013 04:24:54 +0000 (23:24 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 3 Mar 2013 22:03:37 +0000 (06:03 +0800)
commit 72ba74508b2857e71d65fc93f0d6b684492fc740 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/ext4/super.c

index 3d4fb81bacd540ca7b81fd4005f392aa7a516b53..0465f36add73f92f11fc63a417a691e25c84197c 100644 (file)
@@ -4008,7 +4008,7 @@ no_journal:
            !(sb->s_flags & MS_RDONLY)) {
                err = ext4_enable_quotas(sb);
                if (err)
-                       goto failed_mount7;
+                       goto failed_mount8;
        }
 #endif  /* CONFIG_QUOTA */
 
@@ -4035,6 +4035,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:
@@ -5005,9 +5009,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;
                        }
                }