Patchwork [4/4] tune2fs: fix quota feature removal

login
register
mail settings
Submitter Aditya Kali
Date July 13, 2012, 10:25 p.m.
Message ID <1342218309-25983-4-git-send-email-adityakali@google.com>
Download mbox | patch
Permalink /patch/170973/
State Accepted
Headers show

Comments

Aditya Kali - July 13, 2012, 10:25 p.m.
When the last quota inode is removed, the 'quota' feature
flag was not removed from superblock in some cases.
Ex:
 $ mke2fs -t ext4 -O quota <dev>  # creates both usr & grp
                                  # quota inodes
 $ tune2fs -Q ^usrquota <dev>  # removes usr quota inode
 $ tune2fs -Q ^grpquota <dev>  # removes grp quota inode,
                               # but the 'quota' feature flag
                               # was not removed from superblock
This patch removes the 'quota' feature flag from superblock
if none of the quota inodes are set.

Signed-off-by: Aditya Kali <adityakali@google.com>
---
 misc/tune2fs.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

Patch

diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 73bc10c..fb46fb6 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -734,7 +734,8 @@  void handle_quota_options(ext2_filsys fs)
 	if ((usrquota == QOPT_ENABLE) || (grpquota == QOPT_ENABLE)) {
 		fs->super->s_feature_ro_compat |= EXT4_FEATURE_RO_COMPAT_QUOTA;
 		ext2fs_mark_super_dirty(fs);
-	} else if ((usrquota == QOPT_DISABLE) && (grpquota == QOPT_DISABLE)) {
+	} else if (!fs->super->s_usr_quota_inum &&
+		   !fs->super->s_grp_quota_inum) {
 		fs->super->s_feature_ro_compat &= ~EXT4_FEATURE_RO_COMPAT_QUOTA;
 		ext2fs_mark_super_dirty(fs);
 	}