f2fs: skip searching dirty map if dirty segment is not exist
When searching victim during gc, if there are no dirty segments in filesystem, we will still take the time to search the whole dirty segment map, it's not needed, it's better to skip in this condition. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
a43f7ec327
commit
3342bb303b
|
@ -268,6 +268,9 @@ static int get_victim_by_default(struct f2fs_sb_info *sbi,
|
|||
p.min_segno = NULL_SEGNO;
|
||||
p.min_cost = max_cost = get_max_cost(sbi, &p);
|
||||
|
||||
if (p.max_search == 0)
|
||||
goto out;
|
||||
|
||||
if (p.alloc_mode == LFS && gc_type == FG_GC) {
|
||||
p.min_segno = check_bg_victims(sbi);
|
||||
if (p.min_segno != NULL_SEGNO)
|
||||
|
@ -329,6 +332,7 @@ got_it:
|
|||
sbi->cur_victim_sec,
|
||||
prefree_segments(sbi), free_segments(sbi));
|
||||
}
|
||||
out:
|
||||
mutex_unlock(&dirty_i->seglist_lock);
|
||||
|
||||
return (p.min_segno == NULL_SEGNO) ? 0 : 1;
|
||||
|
|
Loading…
Reference in New Issue