|
@@ -1136,7 +1136,7 @@ enum {
|
|
Opt_inode_readahead_blks, Opt_journal_ioprio,
|
|
Opt_inode_readahead_blks, Opt_journal_ioprio,
|
|
Opt_dioread_nolock, Opt_dioread_lock,
|
|
Opt_dioread_nolock, Opt_dioread_lock,
|
|
Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable,
|
|
Opt_discard, Opt_nodiscard, Opt_init_itable, Opt_noinit_itable,
|
|
- Opt_max_dir_size_kb,
|
|
|
|
|
|
+ Opt_max_dir_size_kb, Opt_nojournal_checksum,
|
|
};
|
|
};
|
|
|
|
|
|
static const match_table_t tokens = {
|
|
static const match_table_t tokens = {
|
|
@@ -1170,6 +1170,7 @@ static const match_table_t tokens = {
|
|
{Opt_journal_dev, "journal_dev=%u"},
|
|
{Opt_journal_dev, "journal_dev=%u"},
|
|
{Opt_journal_path, "journal_path=%s"},
|
|
{Opt_journal_path, "journal_path=%s"},
|
|
{Opt_journal_checksum, "journal_checksum"},
|
|
{Opt_journal_checksum, "journal_checksum"},
|
|
|
|
+ {Opt_nojournal_checksum, "nojournal_checksum"},
|
|
{Opt_journal_async_commit, "journal_async_commit"},
|
|
{Opt_journal_async_commit, "journal_async_commit"},
|
|
{Opt_abort, "abort"},
|
|
{Opt_abort, "abort"},
|
|
{Opt_data_journal, "data=journal"},
|
|
{Opt_data_journal, "data=journal"},
|
|
@@ -1351,6 +1352,8 @@ static const struct mount_opts {
|
|
MOPT_EXT4_ONLY | MOPT_SET | MOPT_EXPLICIT},
|
|
MOPT_EXT4_ONLY | MOPT_SET | MOPT_EXPLICIT},
|
|
{Opt_nodelalloc, EXT4_MOUNT_DELALLOC,
|
|
{Opt_nodelalloc, EXT4_MOUNT_DELALLOC,
|
|
MOPT_EXT4_ONLY | MOPT_CLEAR},
|
|
MOPT_EXT4_ONLY | MOPT_CLEAR},
|
|
|
|
+ {Opt_nojournal_checksum, EXT4_MOUNT_JOURNAL_CHECKSUM,
|
|
|
|
+ MOPT_EXT4_ONLY | MOPT_CLEAR},
|
|
{Opt_journal_checksum, EXT4_MOUNT_JOURNAL_CHECKSUM,
|
|
{Opt_journal_checksum, EXT4_MOUNT_JOURNAL_CHECKSUM,
|
|
MOPT_EXT4_ONLY | MOPT_SET},
|
|
MOPT_EXT4_ONLY | MOPT_SET},
|
|
{Opt_journal_async_commit, (EXT4_MOUNT_JOURNAL_ASYNC_COMMIT |
|
|
{Opt_journal_async_commit, (EXT4_MOUNT_JOURNAL_ASYNC_COMMIT |
|
|
@@ -4844,6 +4847,14 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
|
|
goto restore_opts;
|
|
goto restore_opts;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if ((old_opts.s_mount_opt & EXT4_MOUNT_JOURNAL_CHECKSUM) ^
|
|
|
|
+ test_opt(sb, JOURNAL_CHECKSUM)) {
|
|
|
|
+ ext4_msg(sb, KERN_ERR, "changing journal_checksum "
|
|
|
|
+ "during remount not supported");
|
|
|
|
+ err = -EINVAL;
|
|
|
|
+ goto restore_opts;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) {
|
|
if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) {
|
|
if (test_opt2(sb, EXPLICIT_DELALLOC)) {
|
|
if (test_opt2(sb, EXPLICIT_DELALLOC)) {
|
|
ext4_msg(sb, KERN_ERR, "can't mount with "
|
|
ext4_msg(sb, KERN_ERR, "can't mount with "
|