@@ -564,14 +564,14 @@ static void mb_free_blocks_double(struct inode *inode, struct ext4_buddy *e4b,
564
564
565
565
blocknr = ext4_group_first_block_no (sb , e4b -> bd_group );
566
566
blocknr += EXT4_C2B (EXT4_SB (sb ), first + i );
567
+ ext4_mark_group_bitmap_corrupted (sb , e4b -> bd_group ,
568
+ EXT4_GROUP_INFO_BBITMAP_CORRUPT );
567
569
ext4_grp_locked_error (sb , e4b -> bd_group ,
568
570
inode ? inode -> i_ino : 0 ,
569
571
blocknr ,
570
572
"freeing block already freed "
571
573
"(bit %u)" ,
572
574
first + i );
573
- ext4_mark_group_bitmap_corrupted (sb , e4b -> bd_group ,
574
- EXT4_GROUP_INFO_BBITMAP_CORRUPT );
575
575
}
576
576
mb_clear_bit (first + i , e4b -> bd_info -> bb_bitmap );
577
577
}
@@ -1933,12 +1933,12 @@ static void mb_free_blocks(struct inode *inode, struct ext4_buddy *e4b,
1933
1933
1934
1934
blocknr = ext4_group_first_block_no (sb , e4b -> bd_group );
1935
1935
blocknr += EXT4_C2B (sbi , block );
1936
+ ext4_mark_group_bitmap_corrupted (sb , e4b -> bd_group ,
1937
+ EXT4_GROUP_INFO_BBITMAP_CORRUPT );
1936
1938
ext4_grp_locked_error (sb , e4b -> bd_group ,
1937
1939
inode ? inode -> i_ino : 0 , blocknr ,
1938
1940
"freeing already freed block (bit %u); block bitmap corrupt." ,
1939
1941
block );
1940
- ext4_mark_group_bitmap_corrupted (sb , e4b -> bd_group ,
1941
- EXT4_GROUP_INFO_BBITMAP_CORRUPT );
1942
1942
return ;
1943
1943
}
1944
1944
@@ -2406,12 +2406,12 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
2406
2406
2407
2407
k = mb_find_next_zero_bit (buddy , max , 0 );
2408
2408
if (k >= max ) {
2409
+ ext4_mark_group_bitmap_corrupted (ac -> ac_sb ,
2410
+ e4b -> bd_group ,
2411
+ EXT4_GROUP_INFO_BBITMAP_CORRUPT );
2409
2412
ext4_grp_locked_error (ac -> ac_sb , e4b -> bd_group , 0 , 0 ,
2410
2413
"%d free clusters of order %d. But found 0" ,
2411
2414
grp -> bb_counters [i ], i );
2412
- ext4_mark_group_bitmap_corrupted (ac -> ac_sb ,
2413
- e4b -> bd_group ,
2414
- EXT4_GROUP_INFO_BBITMAP_CORRUPT );
2415
2415
break ;
2416
2416
}
2417
2417
ac -> ac_found ++ ;
@@ -2462,12 +2462,12 @@ void ext4_mb_complex_scan_group(struct ext4_allocation_context *ac,
2462
2462
* free blocks even though group info says we
2463
2463
* have free blocks
2464
2464
*/
2465
+ ext4_mark_group_bitmap_corrupted (sb , e4b -> bd_group ,
2466
+ EXT4_GROUP_INFO_BBITMAP_CORRUPT );
2465
2467
ext4_grp_locked_error (sb , e4b -> bd_group , 0 , 0 ,
2466
2468
"%d free clusters as per "
2467
2469
"group info. But bitmap says 0" ,
2468
2470
free );
2469
- ext4_mark_group_bitmap_corrupted (sb , e4b -> bd_group ,
2470
- EXT4_GROUP_INFO_BBITMAP_CORRUPT );
2471
2471
break ;
2472
2472
}
2473
2473
@@ -2493,12 +2493,12 @@ void ext4_mb_complex_scan_group(struct ext4_allocation_context *ac,
2493
2493
if (WARN_ON (ex .fe_len <= 0 ))
2494
2494
break ;
2495
2495
if (free < ex .fe_len ) {
2496
+ ext4_mark_group_bitmap_corrupted (sb , e4b -> bd_group ,
2497
+ EXT4_GROUP_INFO_BBITMAP_CORRUPT );
2496
2498
ext4_grp_locked_error (sb , e4b -> bd_group , 0 , 0 ,
2497
2499
"%d free clusters as per "
2498
2500
"group info. But got %d blocks" ,
2499
2501
free , ex .fe_len );
2500
- ext4_mark_group_bitmap_corrupted (sb , e4b -> bd_group ,
2501
- EXT4_GROUP_INFO_BBITMAP_CORRUPT );
2502
2502
/*
2503
2503
* The number of free blocks differs. This mostly
2504
2504
* indicate that the bitmap is corrupt. So exit
0 commit comments