Whamcloud - gitweb
74ea752be1ddf24b255a80b9c2d4fd5d226a3ba4
[fs/lustre-release.git] / ldiskfs / kernel_patches / patches / rhel7.6 / ext4-dont-check-before-replay.patch
1 Index: linux-stage/fs/ext4/super.c
2 When ldiskfs run in failover mode whith read-only disk.
3 Part of allocation updates are lost and ldiskfs may fail
4 while mounting this is due to inconsistent state of
5 group-descriptor. Group-descriptor check is added after
6 journal replay.
7 ===================================================================
8 --- linux-stage/fs/ext4/super.c 2016-11-06 15:15:30.892386878 +0530
9 +++ linux-stage.orig.1/fs/ext4/super.c  2016-11-08 10:56:45.579892189 +0530
10 @@ -4156,11 +4156,6 @@ static int ext4_fill_super(struct super_
11                 }
12         }
13         sbi->s_gdb_count = db_count;
14 -       if (!ext4_check_descriptors(sb, logical_sb_block, &first_not_zeroed)) {
15 -               ext4_msg(sb, KERN_ERR, "group descriptors corrupted!");
16 -               goto failed_mount2;
17 -       }
18 -
19         get_random_bytes(&sbi->s_next_generation, sizeof(u32));
20         spin_lock_init(&sbi->s_next_gen_lock);
21  
22 @@ -4280,6 +4275,12 @@ static int ext4_fill_super(struct super_
23         sbi->s_journal->j_commit_callback = ext4_journal_commit_callback;
24  
25  no_journal:
26 +
27 +       if (!ext4_check_descriptors(sb, logical_sb_block, &first_not_zeroed)) {
28 +               ext4_msg(sb, KERN_ERR, "group descriptors corrupted!");
29 +               goto failed_mount_wq;
30 +       }
31 +
32         /*
33          * Get the # of file system overhead blocks from the
34          * superblock if present.