ext4: only set EXT4_MOUNT_QUOTA when journalled quota file is specified
authorLukas Czerner <lczerner@redhat.com>
Tue, 4 Jan 2022 14:35:18 +0000 (15:35 +0100)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 10 Jan 2022 18:25:55 +0000 (13:25 -0500)
Only set EXT4_MOUNT_QUOTA when journalled quota file is specified,
otherwise simply disabling specific quota type (usrjquota=) will also
set the EXT4_MOUNT_QUOTA super block option.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Fixes: e6e268cb6822 ("ext4: move quota configuration out of handle_mount_opt()")
Link: https://lore.kernel.org/r/20220104143518.134465-2-lczerner@redhat.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/super.c

index 72e4dfc..435f247 100644 (file)
@@ -2635,12 +2635,13 @@ static void ext4_apply_quota_options(struct fs_context *fc,
                                continue;
 
                        qname = ctx->s_qf_names[i]; /* May be NULL */
+                       if (qname)
+                               set_opt(sb, QUOTA);
                        ctx->s_qf_names[i] = NULL;
                        qname = rcu_replace_pointer(sbi->s_qf_names[i], qname,
                                                lockdep_is_held(&sb->s_umount));
                        if (qname)
                                kfree_rcu(qname);
-                       set_opt(sb, QUOTA);
                }
        }