on 3/4/2023 1:21 AM, Kemeng Shi wrote: > Hi, this series contain some random cleanup patches and some bugfix > patches to make EXT4_MB_HINT_GOAL_ONLY work properly, protect pa->pa_free > from race and so on. More details can be found in git log. > Thanks! > > --- > V3: > -patch 01/20 "ext4: set goal start correctly in > ext4_mb_normalize_request" correctly record goal in ac_g_ex instead of > ac_f_ex, this also trigger another original bug that wanted goal maybe > out of valid data block range. Add valid range check in patch 01/20 > to fully fix the bug. > -run "kvm-xfstests smoke" and all tests are passed except generic/454. > This test also failed in running kernel without this patchset, so > it's unlikely caused by this patchset. I'm trying to figure out the > reason but it may take a while as I'm not family with kvm-xfstests. > Just send this series for early review and maybe some help to pass > the failed test case. I re-run "kvm-xfstests smoke" with newly root_fs.img and all tests pass. It may be the early test which triggerred bug and corruptted the metadata casues failure. > --- > V2: > -Add signed-off from Ritesh and Ojaswin to patch 3/20 "ext4: get correct > ext4_group_info in ext4_mb_prefetch_fini" as this is a duplicate of > a patch under reviewing. > -Split out original patch "ext4: avoid to use preallocated blocks if > EXT4_MB_HINT_GOAL_ONLY is set" which will be resend after improved. > -Improve log information of patch 20. > -Collect Reviewed-by from Ojaswin and Ritesh. Now only patch 3, 12 and > 20 need futher review. > --- > > > Kemeng Shi (20): > ext4: set goal start correctly in ext4_mb_normalize_request > ext4: allow to find by goal if EXT4_MB_HINT_GOAL_ONLY is set > ext4: get correct ext4_group_info in ext4_mb_prefetch_fini > ext4: correct calculation of s_mb_preallocated > ext4: correct start of used group pa for debug in ext4_mb_use_group_pa > ext4: protect pa->pa_free in ext4_discard_allocated_blocks > ext4: add missed brelse in ext4_free_blocks_simple > ext4: remove unused return value of ext4_mb_try_best_found and > ext4_mb_free_metadata > ext4: Remove unnecessary release when memory allocation failed in > ext4_mb_init_cache > ext4: remove unnecessary e4b->bd_buddy_page check in > ext4_mb_load_buddy_gfp > ext4: remove unnecessary check in ext4_mb_new_blocks > ext4: remove dead check in mb_buddy_mark_free > ext4: remove ac->ac_found > sbi->s_mb_min_to_scan dead check in > ext4_mb_check_limits > ext4: use best found when complex scan of group finishs > ext4: remove unnecessary exit_meta_group_info tag > ext4: remove unnecessary count2 in ext4_free_data_in_buddy > ext4: remove unnecessary goto in ext4_mb_mark_diskspace_used > ext4: remove repeat assignment to ac_f_ex > ext4: remove comment code ext4_discard_preallocations > ext4: simplify calculation of blkoff in ext4_mb_new_blocks_simple > > fs/ext4/mballoc.c | 111 ++++++++++++++++++---------------------------- > 1 file changed, 43 insertions(+), 68 deletions(-) > -- Best wishes Kemeng Shi