Commit c1660d88 authored by Yangtao Li's avatar Yangtao Li Committed by Jaegeuk Kim
Browse files

f2fs: add has_enough_free_secs()



Replace !has_not_enough_free_secs w/ has_enough_free_secs.
BTW avoid nested 'if' statements in f2fs_balance_fs().

Signed-off-by: default avatarYangtao Li <frank.li@vivo.com>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent bd90c5cd
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1872,7 +1872,7 @@ int f2fs_gc(struct f2fs_sb_info *sbi, struct f2fs_gc_control *gc_control)
	if (gc_type == FG_GC) {
		sbi->cur_victim_sec = NULL_SEGNO;

		if (!has_not_enough_free_secs(sbi, sec_freed, 0)) {
		if (has_enough_free_secs(sbi, sec_freed, 0)) {
			if (!gc_control->no_bg_gc &&
			    sec_freed < gc_control->nr_free_secs)
				goto go_gc_more;
@@ -1886,7 +1886,7 @@ int f2fs_gc(struct f2fs_sb_info *sbi, struct f2fs_gc_control *gc_control)
			ret = f2fs_write_checkpoint(sbi, &cpc);
			goto stop;
		}
	} else if (!has_not_enough_free_secs(sbi, 0, 0)) {
	} else if (has_enough_free_secs(sbi, 0, 0)) {
		goto stop;
	}

+22 −21
Original line number Diff line number Diff line
@@ -412,7 +412,9 @@ void f2fs_balance_fs(struct f2fs_sb_info *sbi, bool need)
	 * We should do GC or end up with checkpoint, if there are so many dirty
	 * dir/node pages without enough free segments.
	 */
	if (has_not_enough_free_secs(sbi, 0, 0)) {
	if (has_enough_free_secs(sbi, 0, 0))
		return;

	if (test_opt(sbi, GC_MERGE) && sbi->gc_thread &&
				sbi->gc_thread->f2fs_gc_task) {
		DEFINE_WAIT(wait);
@@ -434,7 +436,6 @@ void f2fs_balance_fs(struct f2fs_sb_info *sbi, bool need)
		f2fs_gc(sbi, &gc_control);
	}
}
}

static inline bool excess_dirty_threshold(struct f2fs_sb_info *sbi)
{
+7 −1
Original line number Diff line number Diff line
@@ -643,11 +643,17 @@ static inline bool has_not_enough_free_secs(struct f2fs_sb_info *sbi,
	return !curseg_space;
}

static inline bool has_enough_free_secs(struct f2fs_sb_info *sbi,
					int freed, int needed)
{
	return !has_not_enough_free_secs(sbi, freed, needed);
}

static inline bool f2fs_is_checkpoint_ready(struct f2fs_sb_info *sbi)
{
	if (likely(!is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
		return true;
	if (likely(!has_not_enough_free_secs(sbi, 0, 0)))
	if (likely(has_enough_free_secs(sbi, 0, 0)))
		return true;
	return false;
}