[PATCH v3 0/8] ext4: fix divide error in mb_update_avg_fragment_size()

From: Baokun Li
Date: Thu Jan 04 2024 - 09:18:24 EST


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