]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
tune2fs: fix quota feature removal
authorAditya Kali <adityakali@google.com>
Fri, 13 Jul 2012 22:25:09 +0000 (15:25 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 16 Jul 2012 01:12:04 +0000 (21:12 -0400)
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>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/tune2fs.c

index 73bc10c0a5cf6fae825542198cdb5159517c2a88..fb46fb6d17a52591620041b2f05ee674a44ae6f5 100644 (file)
@@ -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);
        }