|
@@ -1516,8 +1516,12 @@ static int handle_mount_opt(struct super_block *sb, char *opt, int token,
|
|
|
return -1;
|
|
|
if (args->from && (m->flags & MOPT_GTE0) && (arg < 0))
|
|
|
return -1;
|
|
|
- if (m->flags & MOPT_EXPLICIT)
|
|
|
- set_opt2(sb, EXPLICIT_DELALLOC);
|
|
|
+ if (m->flags & MOPT_EXPLICIT) {
|
|
|
+ if (m->mount_opt & EXT4_MOUNT_DELALLOC) {
|
|
|
+ set_opt2(sb, EXPLICIT_DELALLOC);
|
|
|
+ } else
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
if (m->flags & MOPT_CLEAR_ERR)
|
|
|
clear_opt(sb, ERRORS_MASK);
|
|
|
if (token == Opt_noquota && sb_any_quota_loaded(sb)) {
|