When ldiskfs run in failover mode whith read-only disk. Part of allocation updates are lost and ldiskfs may fail while mounting this is due to inconsistent state of group-descriptor. Group-descriptor check is added after journal replay. Index: linux-4.15.0/fs/ext4/super.c =================================================================== --- linux-4.15.0.orig/fs/ext4/super.c +++ linux-4.15.0/fs/ext4/super.c @@ -4051,11 +4051,6 @@ static int ext4_fill_super(struct super_ goto failed_mount2; } } - if (!ext4_check_descriptors(sb, logical_sb_block, &first_not_zeroed)) { - ext4_msg(sb, KERN_ERR, "group descriptors corrupted!"); - ret = -EFSCORRUPTED; - goto failed_mount2; - } sbi->s_gdb_count = db_count; @@ -4196,6 +4191,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) {