V2->V3: Replace patch 3's changelog with the one suggested by Jan Kara. Refactor the code in patch 4 to make it more readable, as suggested by Jan Kara. Patch 8 is adapted based on patch 4 after modification. Add Reviewed-by tag. V1->V2: Fixed some things pointed out by Jan Kara. Fixed more cases where blocks could be allocated from corrupted groups. [V1]: https://lore.kernel.org/all/20231218141814.1477338-1-libaokun1@xxxxxxxxxx/ [V2]: https://lore.kernel.org/all/20231221150558.2740823-1-libaokun1@xxxxxxxxxx/ Baokun Li (8): ext4: fix double-free of blocks due to wrong extents moved_len ext4: do not trim the group with corrupted block bitmap ext4: regenerate buddy after block freeing failed if under fc replay ext4: avoid bb_free and bb_fragments inconsistency in mb_free_blocks() ext4: avoid dividing by 0 in mb_update_avg_fragment_size() when block bitmap corrupt ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found() ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal() ext4: mark the group block bitmap as corrupted before reporting an error fs/ext4/mballoc.c | 91 ++++++++++++++++++++++++++++--------------- fs/ext4/move_extent.c | 6 +-- 2 files changed, 62 insertions(+), 35 deletions(-) -- 2.31.1