Esempio n. 1
0
static void select_policy(struct f2fs_sb_info *sbi, int gc_type,
                          int type, struct victim_sel_policy *p)
{
    struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);

    if (p->alloc_mode == SSR) {
        p->gc_mode = GC_GREEDY;
        p->dirty_segmap = dirty_i->dirty_segmap[type];
        p->ofs_unit = 1;
    } else {
        p->gc_mode = select_gc_type(gc_type);
        p->dirty_segmap = dirty_i->dirty_segmap[DIRTY];
        p->ofs_unit = sbi->segs_per_sec;
    }
    p->offset = sbi->last_victim[p->gc_mode];
}
Esempio n. 2
0
static void select_policy(struct f2fs_sb_info *sbi, int gc_type,
			int type, struct victim_sel_policy *p)
{
	struct dirty_seglist_info *dirty_i = DIRTY_I(sbi);

	if (p->alloc_mode == SSR) {
		p->gc_mode = GC_GREEDY;
		p->dirty_segmap = dirty_i->dirty_segmap[type];
		p->max_search = dirty_i->nr_dirty[type];
		p->ofs_unit = 1;
	} else {
		p->gc_mode = select_gc_type(sbi->gc_thread, gc_type);
		p->dirty_segmap = dirty_i->dirty_segmap[DIRTY];
		p->max_search = dirty_i->nr_dirty[DIRTY];
		p->ofs_unit = sbi->segs_per_sec;
	}

	if (p->max_search > MAX_VICTIM_SEARCH)
		p->max_search = MAX_VICTIM_SEARCH;

	p->offset = sbi->last_victim[p->gc_mode];
}