Lines Matching refs:cpc

539 		struct cp_control *cpc, struct seg_entry *se,  in __add_discard_entry()  argument
547 if (START_BLOCK(sbi, cpc->trim_start) + start == in __add_discard_entry()
556 new->blkaddr = START_BLOCK(sbi, cpc->trim_start) + start; in __add_discard_entry()
563 static void add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc) in add_discard_addrs() argument
567 struct seg_entry *se = get_seg_entry(sbi, cpc->trim_start); in add_discard_addrs()
573 bool force = (cpc->reason == CP_DISCARD); in add_discard_addrs()
596 __add_discard_entry(sbi, cpc, se, start, end); in add_discard_addrs()
626 void clear_prefree_segments(struct f2fs_sb_info *sbi, struct cp_control *cpc) in clear_prefree_segments() argument
659 if (cpc->reason == CP_DISCARD && entry->len < cpc->trim_minlen) in clear_prefree_segments()
662 cpc->trimmed += entry->len; in clear_prefree_segments()
1136 struct cp_control cpc; in f2fs_trim_fs() local
1141 cpc.trimmed = 0; in f2fs_trim_fs()
1149 cpc.reason = CP_DISCARD; in f2fs_trim_fs()
1150 cpc.trim_minlen = max_t(__u64, 1, F2FS_BYTES_TO_BLK(range->minlen)); in f2fs_trim_fs()
1153 for (; start_segno <= end_segno; start_segno = cpc.trim_end + 1) { in f2fs_trim_fs()
1154 cpc.trim_start = start_segno; in f2fs_trim_fs()
1159 cpc.trim_end = end_segno; in f2fs_trim_fs()
1161 cpc.trim_end = min_t(unsigned int, in f2fs_trim_fs()
1167 write_checkpoint(sbi, &cpc); in f2fs_trim_fs()
1171 range->len = F2FS_BLK_TO_BYTES(cpc.trimmed); in f2fs_trim_fs()
1883 void flush_sit_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc) in flush_sit_entries() argument
1943 if (cpc->reason != CP_DISCARD) { in flush_sit_entries()
1944 cpc->trim_start = segno; in flush_sit_entries()
1945 add_discard_addrs(sbi, cpc); in flush_sit_entries()
1977 if (cpc->reason == CP_DISCARD) { in flush_sit_entries()
1978 for (; cpc->trim_start <= cpc->trim_end; cpc->trim_start++) in flush_sit_entries()
1979 add_discard_addrs(sbi, cpc); in flush_sit_entries()