ext4: enable quotas before orphan cleanup
authorJan Kara <jack@suse.cz>
Sat, 2 Mar 2013 23:22:38 +0000 (18:22 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 2 Mar 2013 23:22:38 +0000 (18:22 -0500)
When using quota feature we need to enable quotas before orphan cleanup
so that changes happening during it are properly reflected in quota
accounting.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/super.c

index b7deba7..9379b7f 100644 (file)
@@ -3933,6 +3933,16 @@ no_journal:
        if (err)
                goto failed_mount7;
 
+#ifdef CONFIG_QUOTA
+       /* Enable quota usage during mount. */
+       if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA) &&
+           !(sb->s_flags & MS_RDONLY)) {
+               err = ext4_enable_quotas(sb);
+               if (err)
+                       goto failed_mount8;
+       }
+#endif  /* CONFIG_QUOTA */
+
        EXT4_SB(sb)->s_mount_state |= EXT4_ORPHAN_FS;
        ext4_orphan_cleanup(sb, es);
        EXT4_SB(sb)->s_mount_state &= ~EXT4_ORPHAN_FS;
@@ -3950,16 +3960,6 @@ no_journal:
        } else
                descr = "out journal";
 
-#ifdef CONFIG_QUOTA
-       /* Enable quota usage during mount. */
-       if (EXT4_HAS_RO_COMPAT_FEATURE(sb, EXT4_FEATURE_RO_COMPAT_QUOTA) &&
-           !(sb->s_flags & MS_RDONLY)) {
-               err = ext4_enable_quotas(sb);
-               if (err)
-                       goto failed_mount8;
-       }
-#endif  /* CONFIG_QUOTA */
-
        if (test_opt(sb, DISCARD)) {
                struct request_queue *q = bdev_get_queue(sb->s_bdev);
                if (!blk_queue_discard(q))