Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0646f7b authored by Theodore Ts'o's avatar Theodore Ts'o
Browse files

ext4: Remove journal_checksum mount option and enable it by default



There's no real cost for the journal checksum feature, and we should
make sure it is enabled all the time.

Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent a3710fd1
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -134,15 +134,9 @@ ro Mount filesystem read only. Note that ext4 will
                     	mount options "ro,noload" can be used to prevent
		     	writes to the filesystem.

journal_checksum	Enable checksumming of the journal transactions.
			This will allow the recovery code in e2fsck and the
			kernel to detect corruption in the kernel.  It is a
			compatible change and will be ignored by older kernels.

journal_async_commit	Commit block can be written to disk without waiting
			for descriptor blocks. If enabled older kernels cannot
			mount the device. This will enable 'journal_checksum'
			internally.
			mount the device.

journal=update		Update the ext4 file system's journal to the current
			format.
+0 −1
Original line number Diff line number Diff line
@@ -711,7 +711,6 @@ struct ext4_inode_info {
#define EXT4_MOUNT_QUOTA		0x80000 /* Some quota option set */
#define EXT4_MOUNT_USRQUOTA		0x100000 /* "old" user quota */
#define EXT4_MOUNT_GRPQUOTA		0x200000 /* "old" group quota */
#define EXT4_MOUNT_JOURNAL_CHECKSUM	0x800000 /* Journal checksums */
#define EXT4_MOUNT_JOURNAL_ASYNC_COMMIT	0x1000000 /* Journal Async Commit */
#define EXT4_MOUNT_I_VERSION            0x2000000 /* i_version support */
#define EXT4_MOUNT_DELALLOC		0x8000000 /* Delalloc support */
+6 −14
Original line number Diff line number Diff line
@@ -1280,11 +1280,9 @@ static int parse_options(char *options, struct super_block *sb,
			*journal_devnum = option;
			break;
		case Opt_journal_checksum:
			set_opt(sbi->s_mount_opt, JOURNAL_CHECKSUM);
			break;
			break;	/* Kept for backwards compatibility */
		case Opt_journal_async_commit:
			set_opt(sbi->s_mount_opt, JOURNAL_ASYNC_COMMIT);
			set_opt(sbi->s_mount_opt, JOURNAL_CHECKSUM);
			break;
		case Opt_noload:
			set_opt(sbi->s_mount_opt, NOLOAD);
@@ -2751,20 +2749,14 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
		goto failed_mount4;
	}

	if (test_opt(sb, JOURNAL_ASYNC_COMMIT)) {
		jbd2_journal_set_features(sbi->s_journal,
				JBD2_FEATURE_COMPAT_CHECKSUM, 0,
				JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT);
	} else if (test_opt(sb, JOURNAL_CHECKSUM)) {
	jbd2_journal_set_features(sbi->s_journal,
				  JBD2_FEATURE_COMPAT_CHECKSUM, 0, 0);
		jbd2_journal_clear_features(sbi->s_journal, 0, 0,
	if (test_opt(sb, JOURNAL_ASYNC_COMMIT))
		jbd2_journal_set_features(sbi->s_journal, 0, 0,
				JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT);
	} else {
		jbd2_journal_clear_features(sbi->s_journal,
				JBD2_FEATURE_COMPAT_CHECKSUM, 0,
	else
		jbd2_journal_clear_features(sbi->s_journal, 0, 0,
				JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT);
	}

	/* We have now updated the journal if required, so we can
	 * validate the data journaling mode. */