Patchwork [2/2] ext4: Enable quotas before orphan cleanup

login
register
mail settings
Submitter Jan Kara
Date Feb. 25, 2013, 11:36 p.m.
Message ID <1361835369-19850-2-git-send-email-jack@suse.cz>
Download mbox | patch
Permalink /patch/223069/
State Accepted
Headers show

Comments

Jan Kara - Feb. 25, 2013, 11:36 p.m.
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>
---
 fs/ext4/super.c |   20 ++++++++++----------
 1 files changed, 10 insertions(+), 10 deletions(-)

This is based on Jeff Mahoney's patch to tear down kobj when quota init fails:
ext4: cleanup sbi->s_kobj after quota initialization failure
Theodore Ts'o - March 2, 2013, 11:04 p.m.
On Tue, Feb 26, 2013 at 12:36:09AM +0100, Jan Kara wrote:
> 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>

Thanks, applied.

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 1746a6e..ef1c69e 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -4001,6 +4001,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;
@@ -4018,16 +4028,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))