aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2015-02-12 23:07:37 -0500
committerTheodore Ts'o <tytso@mit.edu>2015-02-12 23:07:37 -0500
commit2d5b86e048780c5efa7f7d9708815555919e7b05 (patch)
treebcb2f27996650a4c115274b755a6bd38e2f304b6 /fs
parentb94a8b36be4e74d8caff387fadf71f9f97c2ea69 (diff)
ext4: ignore journal checksum on remount; don't fail
As of v3.18, ext4 started rejecting a remount which changes the journal_checksum option. Prior to that, it was simply ignored; the problem here is that if someone has this in their fstab for the root fs, now the box fails to boot properly, because remount of root with the new options will fail, and the box proceeds with a readonly root. I think it is a little nicer behavior to accept the option, but warn that it's being ignored, rather than failing the mount, but that might be a subjective matter... Reported-by: Cónräd <conradsand.arma@gmail.com> Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs')
-rw-r--r--fs/ext4/super.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 2ecce8644cf8..bff3427784ca 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -4858,9 +4858,8 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
4858 if ((old_opts.s_mount_opt & EXT4_MOUNT_JOURNAL_CHECKSUM) ^ 4858 if ((old_opts.s_mount_opt & EXT4_MOUNT_JOURNAL_CHECKSUM) ^
4859 test_opt(sb, JOURNAL_CHECKSUM)) { 4859 test_opt(sb, JOURNAL_CHECKSUM)) {
4860 ext4_msg(sb, KERN_ERR, "changing journal_checksum " 4860 ext4_msg(sb, KERN_ERR, "changing journal_checksum "
4861 "during remount not supported"); 4861 "during remount not supported; ignoring");
4862 err = -EINVAL; 4862 sbi->s_mount_opt ^= EXT4_MOUNT_JOURNAL_CHECKSUM;
4863 goto restore_opts;
4864 } 4863 }
4865 4864
4866 if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) { 4865 if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) {