Lines Matching full:cpc

2078 static bool add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc,  in add_discard_addrs()  argument
2082 struct seg_entry *se = get_seg_entry(sbi, cpc->trim_start); in add_discard_addrs()
2088 bool force = (cpc->reason & CP_DISCARD); in add_discard_addrs()
2101 !IS_CURSEG(sbi, cpc->trim_start)) || in add_discard_addrs()
2121 (end - start) < cpc->trim_minlen) in add_discard_addrs()
2130 de->start_blkaddr = START_BLOCK(sbi, cpc->trim_start); in add_discard_addrs()
2173 struct cp_control *cpc) in f2fs_clear_prefree_segments() argument
2182 bool force = (cpc->reason & CP_DISCARD); in f2fs_clear_prefree_segments()
2215 if (force && start >= cpc->trim_start && in f2fs_clear_prefree_segments()
2216 (end - 1) <= cpc->trim_end) in f2fs_clear_prefree_segments()
2257 (force && len < cpc->trim_minlen)) in f2fs_clear_prefree_segments()
3342 struct cp_control *cpc) in f2fs_exist_trim_candidates() argument
3344 __u64 trim_start = cpc->trim_start; in f2fs_exist_trim_candidates()
3348 for (; cpc->trim_start <= cpc->trim_end; cpc->trim_start++) { in f2fs_exist_trim_candidates()
3349 if (add_discard_addrs(sbi, cpc, true)) { in f2fs_exist_trim_candidates()
3356 cpc->trim_start = trim_start; in f2fs_exist_trim_candidates()
3434 struct cp_control cpc; in f2fs_trim_fs() local
3460 cpc.reason = CP_DISCARD; in f2fs_trim_fs()
3461 cpc.trim_minlen = max_t(__u64, 1, F2FS_BYTES_TO_BLK(range->minlen)); in f2fs_trim_fs()
3462 cpc.trim_start = start_segno; in f2fs_trim_fs()
3463 cpc.trim_end = end_segno; in f2fs_trim_fs()
3470 err = f2fs_write_checkpoint(sbi, &cpc); in f2fs_trim_fs()
3487 __init_discard_policy(sbi, &dpolicy, DPOLICY_FSTRIM, cpc.trim_minlen); in f2fs_trim_fs()
4609 void f2fs_flush_sit_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc) in f2fs_flush_sit_entries() argument
4676 if (!(cpc->reason & CP_DISCARD)) { in f2fs_flush_sit_entries()
4677 cpc->trim_start = segno; in f2fs_flush_sit_entries()
4678 add_discard_addrs(sbi, cpc, false); in f2fs_flush_sit_entries()
4716 if (cpc->reason & CP_DISCARD) { in f2fs_flush_sit_entries()
4717 __u64 trim_start = cpc->trim_start; in f2fs_flush_sit_entries()
4719 for (; cpc->trim_start <= cpc->trim_end; cpc->trim_start++) in f2fs_flush_sit_entries()
4720 add_discard_addrs(sbi, cpc, false); in f2fs_flush_sit_entries()
4722 cpc->trim_start = trim_start; in f2fs_flush_sit_entries()