Lines Matching refs:cpc
484 struct cp_control *cpc, unsigned int start, unsigned int end) in __add_discard_entry() argument
491 if (START_BLOCK(sbi, cpc->trim_start) + start == in __add_discard_entry()
500 new->blkaddr = START_BLOCK(sbi, cpc->trim_start) + start; in __add_discard_entry()
505 cpc->trimmed += end - start; in __add_discard_entry()
508 static void add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc) in add_discard_addrs() argument
512 struct seg_entry *se = get_seg_entry(sbi, cpc->trim_start); in add_discard_addrs()
517 bool force = (cpc->reason == CP_DISCARD); in add_discard_addrs()
532 if (test_bit(cpc->trim_start, dirty_i->dirty_segmap[PRE])) { in add_discard_addrs()
534 cpc->trimmed += sbi->blocks_per_seg; in add_discard_addrs()
539 __add_discard_entry(sbi, cpc, 0, sbi->blocks_per_seg); in add_discard_addrs()
559 if (force && end - start < cpc->trim_minlen) in add_discard_addrs()
562 __add_discard_entry(sbi, cpc, start, end); in add_discard_addrs()
1061 struct cp_control cpc; in f2fs_trim_fs() local
1067 cpc.trimmed = 0; in f2fs_trim_fs()
1075 cpc.reason = CP_DISCARD; in f2fs_trim_fs()
1076 cpc.trim_minlen = F2FS_BYTES_TO_BLK(range->minlen); in f2fs_trim_fs()
1079 for (; start_segno <= end_segno; start_segno = cpc.trim_end + 1) { in f2fs_trim_fs()
1080 cpc.trim_start = start_segno; in f2fs_trim_fs()
1081 cpc.trim_end = min_t(unsigned int, rounddown(start_segno + in f2fs_trim_fs()
1086 write_checkpoint(sbi, &cpc); in f2fs_trim_fs()
1090 range->len = F2FS_BLK_TO_BYTES(cpc.trimmed); in f2fs_trim_fs()
1726 void flush_sit_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc) in flush_sit_entries() argument
1786 if (cpc->reason != CP_DISCARD) { in flush_sit_entries()
1787 cpc->trim_start = segno; in flush_sit_entries()
1788 add_discard_addrs(sbi, cpc); in flush_sit_entries()
1820 if (cpc->reason == CP_DISCARD) { in flush_sit_entries()
1821 for (; cpc->trim_start <= cpc->trim_end; cpc->trim_start++) in flush_sit_entries()
1822 add_discard_addrs(sbi, cpc); in flush_sit_entries()