Viewing: ext4-dont-check-before-replay.patch
commit a70b020e5b2f1bbe3b759232852beaac4f0852b5
Author: Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
AuthorDate: Fri Nov 25 16:17:09 2016 +0530
LU-8364 ext4: fixes for failover mode.
When ext4 runs in failover mode with read-only disk,
it may loose part of allocation updates and fail while
mounting fs due to group descriptor checks before journal
replay not being valid after journal replay is complete.
Don't produce panics with on disk checks in read-only mode.
Seagate-bug-id: MRP-797
Change-Id: I54bee3a0aeb9a15f5ee2a79f7a2a2a905f19af1a
Signed-off-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
Signed-off-by: Lokesh Nagappa Jaliminche <lokesh.jaliminche@seagate.com>
Reviewed-on: https://review.whamcloud.com/21141
Index: linux-4.18.0-32.el8.x86_64/fs/ext4/super.c
===================================================================
--- linux-4.18.0-32.el8.x86_64.orig/fs/ext4/super.c
+++ linux-4.18.0-32.el8.x86_64/fs/ext4/super.c
@@ -4092,11 +4092,6 @@ static int ext4_fill_super(struct super_
}
}
sbi->s_gdb_count = db_count;
- if (!ext4_check_descriptors(sb, logical_sb_block, &first_not_zeroed)) {
- ext4_msg(sb, KERN_ERR, "group descriptors corrupted!");
- ret = -EFSCORRUPTED;
- goto failed_mount2;
- }
timer_setup(&sbi->s_err_report, print_daily_error_info, 0);
@@ -4238,6 +4233,13 @@ static int ext4_fill_super(struct super_
sbi->s_journal->j_commit_callback = ext4_journal_commit_callback;
no_journal:
+
+ if (!ext4_check_descriptors(sb, logical_sb_block, &first_not_zeroed)) {
+ ext4_msg(sb, KERN_ERR, "group descriptors corrupted!");
+ ret = -EFSCORRUPTED;
+ goto failed_mount_wq;
+ }
+
if (!test_opt(sb, NO_MBCACHE)) {
sbi->s_ea_block_cache = ext4_xattr_create_cache();
if (!sbi->s_ea_block_cache) {