Lines Matching refs:segno
204 static unsigned int get_cb_cost(struct f2fs_sb_info *sbi, unsigned int segno) in get_cb_cost() argument
207 unsigned int secno = GET_SECNO(sbi, segno); in get_cb_cost()
217 vblocks = get_valid_blocks(sbi, segno, sbi->segs_per_sec); in get_cb_cost()
237 unsigned int segno, struct victim_sel_policy *p) in get_gc_cost() argument
240 return get_seg_entry(sbi, segno)->ckpt_valid_blocks; in get_gc_cost()
244 return get_valid_blocks(sbi, segno, sbi->segs_per_sec); in get_gc_cost()
246 return get_cb_cost(sbi, segno); in get_gc_cost()
285 unsigned int segno; in get_victim_by_default() local
287 segno = find_next_bit(p.dirty_segmap, last_segment, p.offset); in get_victim_by_default()
288 if (segno >= last_segment) { in get_victim_by_default()
298 p.offset = segno + p.ofs_unit; in get_victim_by_default()
300 p.offset -= segno % p.ofs_unit; in get_victim_by_default()
302 secno = GET_SECNO(sbi, segno); in get_victim_by_default()
309 cost = get_gc_cost(sbi, segno, &p); in get_victim_by_default()
312 p.min_segno = segno; in get_victim_by_default()
319 sbi->last_victim[p.gc_mode] = segno; in get_victim_by_default()
385 unsigned int segno, int offset) in check_valid_map() argument
392 sentry = get_seg_entry(sbi, segno); in check_valid_map()
404 struct f2fs_summary *sum, unsigned int segno, int gc_type) in gc_node_segment() argument
411 start_addr = START_BLOCK(sbi, segno); in gc_node_segment()
425 if (check_valid_map(sbi, segno, off) == 0) in gc_node_segment()
437 if (check_valid_map(sbi, segno, off) == 0) { in gc_node_segment()
474 if (get_valid_blocks(sbi, segno, 1) == 0) in gc_node_segment()
668 struct gc_inode_list *gc_list, unsigned int segno, int gc_type) in gc_data_segment() argument
676 start_addr = START_BLOCK(sbi, segno); in gc_data_segment()
692 if (check_valid_map(sbi, segno, off) == 0) in gc_data_segment()
756 if (get_valid_blocks(sbi, segno, 1) == 0) in gc_data_segment()
775 static int do_garbage_collect(struct f2fs_sb_info *sbi, unsigned int segno, in do_garbage_collect() argument
784 sum_page = get_sum_page(sbi, segno); in do_garbage_collect()
801 nfree = gc_node_segment(sbi, sum->entries, segno, gc_type); in do_garbage_collect()
805 segno, gc_type); in do_garbage_collect()
819 unsigned int segno, i; in f2fs_gc() local
831 segno = NULL_SEGNO; in f2fs_gc()
840 if (__get_victim(sbi, &segno, gc_type) || prefree_segments(sbi)) in f2fs_gc()
844 if (segno == NULL_SEGNO && !__get_victim(sbi, &segno, gc_type)) in f2fs_gc()
850 ra_meta_pages(sbi, GET_SUM_BLOCK(sbi, segno), sbi->segs_per_sec, in f2fs_gc()
858 if (!do_garbage_collect(sbi, segno + i, &gc_list, gc_type) && in f2fs_gc()