2015-02-10 16:41:33

by Eric Sandeen

[permalink] [raw]
Subject: [PATCH 1/2] ext4: remove duplicate remount check for JOURNAL_CHECKSUM change

commits c6d3d56d and 6b992ff2 each added the same test for, and
rejection of, changing journal_checksum during remount. One suffices.

While we're at it, remove old comment about the "check" option
which has been deprecated for some time now.

Signed-off-by: Eric Sandeen <[email protected]>
---

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 74c5f53..f300a56 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -4845,9 +4845,6 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
if (sbi->s_journal && sbi->s_journal->j_task->io_context)
journal_ioprio = sbi->s_journal->j_task->io_context->ioprio;

- /*
- * Allow the "check" option to be passed as a remount option.
- */
if (!parse_options(data, sb, NULL, &journal_ioprio, 1)) {
err = -EINVAL;
goto restore_opts;
@@ -4861,14 +4858,6 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
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;
- }


2015-02-10 16:48:49

by Eric Sandeen

[permalink] [raw]
Subject: [PATCH 2/2, RFC] 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 <[email protected]>
Signed-off-by: Eric Sandeen <[email protected]>
---

ALSO: Not tested. Please double check my mad bitwise skillz to
be sure I'm re-setting the option properly. ;) Thanks!

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index f300a56..250ad25 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -4853,9 +4853,8 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
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;
+ "during remount not supported; ignoring");
+ sbi->s_mount_opt ^= EXT4_MOUNT_JOURNAL_CHECKSUM;
}

if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) {

2015-02-13 04:05:50

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH 1/2] ext4: remove duplicate remount check for JOURNAL_CHECKSUM change

On Tue, Feb 10, 2015 at 10:41:31AM -0600, Eric Sandeen wrote:
> commits c6d3d56d and 6b992ff2 each added the same test for, and
> rejection of, changing journal_checksum during remount. One suffices.
>
> While we're at it, remove old comment about the "check" option
> which has been deprecated for some time now.
>
> Signed-off-by: Eric Sandeen <[email protected]>

Applied, thanks.

- Ted

2015-02-13 04:09:12

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH 2/2, RFC] ext4: ignore journal checksum on remount; don't fail

On Tue, Feb 10, 2015 at 10:48:46AM -0600, Eric Sandeen wrote:
> 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 <[email protected]>
> Signed-off-by: Eric Sandeen <[email protected]>

Applied, thanks.

- Ted