|
@@ -1901,12 +1901,6 @@ static int parse_options(char *options, struct super_block *sb,
|
|
|
return 0;
|
|
|
}
|
|
|
}
|
|
|
- if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA &&
|
|
|
- test_opt(sb, JOURNAL_ASYNC_COMMIT)) {
|
|
|
- ext4_msg(sb, KERN_ERR, "can't mount with journal_async_commit "
|
|
|
- "in data=ordered mode");
|
|
|
- return 0;
|
|
|
- }
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
@@ -4004,6 +3998,14 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
+
|
|
|
+ if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA &&
|
|
|
+ test_opt(sb, JOURNAL_ASYNC_COMMIT)) {
|
|
|
+ ext4_msg(sb, KERN_ERR, "can't mount with "
|
|
|
+ "journal_async_commit in data=ordered mode");
|
|
|
+ goto failed_mount_wq;
|
|
|
+ }
|
|
|
+
|
|
|
set_task_ioprio(sbi->s_journal->j_task, journal_ioprio);
|
|
|
|
|
|
sbi->s_journal->j_commit_callback = ext4_journal_commit_callback;
|
|
@@ -4897,6 +4899,13 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
|
|
|
err = -EINVAL;
|
|
|
goto restore_opts;
|
|
|
}
|
|
|
+ } else if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA) {
|
|
|
+ if (test_opt(sb, JOURNAL_ASYNC_COMMIT)) {
|
|
|
+ ext4_msg(sb, KERN_ERR, "can't mount with "
|
|
|
+ "journal_async_commit in data=ordered mode");
|
|
|
+ err = -EINVAL;
|
|
|
+ goto restore_opts;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if ((sbi->s_mount_opt ^ old_opts.s_mount_opt) & EXT4_MOUNT_DAX) {
|