On 2024/2/5 11:54, Chao Yu wrote:
How about calling f2fs_balance_fs() to double check and make sure there is
enough free space for following allocation.
if (has_not_enough_free_secs(sbi, 0,
GET_SEC_FROM_SEG(sbi, overprovision_segments(sbi)))) {
f2fs_down_write(&sbi->gc_lock);
stat_inc_gc_call_count(sbi, FOREGROUND);
err = f2fs_gc(sbi, &gc_control);
if (err == -EAGAIN)
f2fs_balance_fs(sbi, true);
if (err && err != -ENODATA)
goto out_err;
}
Thanks,
f2fs_balance_fs() here will not change procedure branch and may just trigger another GC.
I'm afraid this is a bit redundant.