Lines Matching refs:cpc
2036 static bool add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc,
2041 struct seg_entry *se = get_seg_entry(sbi, cpc->trim_start);
2047 bool force = (cpc->reason & CP_DISCARD);
2075 && (end - start) < cpc->trim_minlen)
2084 de->start_blkaddr = START_BLOCK(sbi, cpc->trim_start);
2127 struct cp_control *cpc)
2136 bool force = (cpc->reason & CP_DISCARD);
2165 if (force && start >= cpc->trim_start &&
2166 (end - 1) <= cpc->trim_end)
2202 (force && len < cpc->trim_minlen))
3133 struct cp_control *cpc)
3135 __u64 trim_start = cpc->trim_start;
3139 for (; cpc->trim_start <= cpc->trim_end; cpc->trim_start++) {
3140 if (add_discard_addrs(sbi, cpc, true)) {
3147 cpc->trim_start = trim_start;
3238 struct cp_control cpc;
3264 cpc.reason = CP_DISCARD;
3265 cpc.trim_minlen = max_t(__u64, 1, F2FS_BYTES_TO_BLK(range->minlen));
3266 cpc.trim_start = start_segno;
3267 cpc.trim_end = end_segno;
3273 err = f2fs_write_checkpoint(sbi, &cpc);
3290 __init_discard_policy(sbi, &dpolicy, DPOLICY_FSTRIM, cpc.trim_minlen);
4298 void f2fs_flush_sit_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc)
4365 if (!(cpc->reason & CP_DISCARD)) {
4366 cpc->trim_start = segno;
4367 add_discard_addrs(sbi, cpc, false);
4405 if (cpc->reason & CP_DISCARD) {
4406 __u64 trim_start = cpc->trim_start;
4408 for (; cpc->trim_start <= cpc->trim_end; cpc->trim_start++)
4409 add_discard_addrs(sbi, cpc, false);
4411 cpc->trim_start = trim_start;