|
@@ -1324,9 +1324,9 @@ static int set_qf_name(struct super_block *sb, int qtype, substring_t *args)
|
|
|
return -1;
|
|
|
}
|
|
|
if (ext4_has_feature_quota(sb)) {
|
|
|
- ext4_msg(sb, KERN_ERR, "Cannot set journaled quota options "
|
|
|
- "when QUOTA feature is enabled");
|
|
|
- return -1;
|
|
|
+ ext4_msg(sb, KERN_INFO, "Journaled quota options "
|
|
|
+ "ignored when QUOTA feature is enabled");
|
|
|
+ return 1;
|
|
|
}
|
|
|
qname = match_strdup(args);
|
|
|
if (!qname) {
|
|
@@ -1689,10 +1689,10 @@ static int handle_mount_opt(struct super_block *sb, char *opt, int token,
|
|
|
return -1;
|
|
|
}
|
|
|
if (ext4_has_feature_quota(sb)) {
|
|
|
- ext4_msg(sb, KERN_ERR,
|
|
|
- "Cannot set journaled quota options "
|
|
|
+ ext4_msg(sb, KERN_INFO,
|
|
|
+ "Quota format mount options ignored "
|
|
|
"when QUOTA feature is enabled");
|
|
|
- return -1;
|
|
|
+ return 1;
|
|
|
}
|
|
|
sbi->s_jquota_fmt = m->mount_opt;
|
|
|
#endif
|
|
@@ -1757,11 +1757,11 @@ static int parse_options(char *options, struct super_block *sb,
|
|
|
#ifdef CONFIG_QUOTA
|
|
|
if (ext4_has_feature_quota(sb) &&
|
|
|
(test_opt(sb, USRQUOTA) || test_opt(sb, GRPQUOTA))) {
|
|
|
- ext4_msg(sb, KERN_ERR, "Cannot set quota options when QUOTA "
|
|
|
- "feature is enabled");
|
|
|
- return 0;
|
|
|
- }
|
|
|
- if (sbi->s_qf_names[USRQUOTA] || sbi->s_qf_names[GRPQUOTA]) {
|
|
|
+ ext4_msg(sb, KERN_INFO, "Quota feature enabled, usrquota and grpquota "
|
|
|
+ "mount options ignored.");
|
|
|
+ clear_opt(sb, USRQUOTA);
|
|
|
+ clear_opt(sb, GRPQUOTA);
|
|
|
+ } else if (sbi->s_qf_names[USRQUOTA] || sbi->s_qf_names[GRPQUOTA]) {
|
|
|
if (test_opt(sb, USRQUOTA) && sbi->s_qf_names[USRQUOTA])
|
|
|
clear_opt(sb, USRQUOTA);
|
|
|
|