Lines Matching full:cpc

1326 static void update_ckpt_flags(struct f2fs_sb_info *sbi, struct cp_control *cpc)  in update_ckpt_flags()  argument
1334 if ((cpc->reason & CP_UMOUNT) && in update_ckpt_flags()
1339 if (cpc->reason & CP_TRIMMED) in update_ckpt_flags()
1344 if (cpc->reason & CP_UMOUNT) in update_ckpt_flags()
1349 if (cpc->reason & CP_FASTBOOT) in update_ckpt_flags()
1445 static inline void stat_cp_time(struct cp_control *cpc, enum cp_time type) in stat_cp_time() argument
1447 cpc->stats.times[type] = ktime_get(); in stat_cp_time()
1450 static inline void check_cp_time(struct f2fs_sb_info *sbi, struct cp_control *cpc) in check_cp_time() argument
1457 cur_diff = (u64)ktime_ms_delta(cpc->stats.times[CP_TIME_END], in check_cp_time()
1458 cpc->stats.times[CP_TIME_START]); in check_cp_time()
1461 sbi->cp_stats = cpc->stats; in check_cp_time()
1468 (u64)ktime_ms_delta(cpc->stats.times[ct + 1], in check_cp_time()
1469 cpc->stats.times[ct])); in check_cp_time()
1473 static int do_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc) in do_checkpoint() argument
1490 stat_cp_time(cpc, CP_TIME_SYNC_META); in do_checkpoint()
1523 if (__remain_node_summaries(cpc->reason)) in do_checkpoint()
1533 update_ckpt_flags(sbi, cpc); in do_checkpoint()
1547 if (enabled_nat_bits(sbi, cpc)) { in do_checkpoint()
1581 if (__remain_node_summaries(cpc->reason)) { in do_checkpoint()
1588 stat_cp_time(cpc, CP_TIME_SYNC_CP_META); in do_checkpoint()
1592 stat_cp_time(cpc, CP_TIME_WAIT_DIRTY_META); in do_checkpoint()
1596 stat_cp_time(cpc, CP_TIME_WAIT_CP_DATA); in do_checkpoint()
1602 stat_cp_time(cpc, CP_TIME_FLUSH_DEVICE); in do_checkpoint()
1607 stat_cp_time(cpc, CP_TIME_WAIT_LAST_CP); in do_checkpoint()
1646 int f2fs_write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc) in f2fs_write_checkpoint() argument
1652 stat_cp_time(cpc, CP_TIME_START); in f2fs_write_checkpoint()
1658 if (cpc->reason != CP_PAUSE) in f2fs_write_checkpoint()
1662 if (cpc->reason != CP_RESIZE) in f2fs_write_checkpoint()
1665 stat_cp_time(cpc, CP_TIME_LOCK); in f2fs_write_checkpoint()
1668 ((cpc->reason & CP_FASTBOOT) || (cpc->reason & CP_SYNC) || in f2fs_write_checkpoint()
1669 ((cpc->reason & CP_DISCARD) && !sbi->discard_blks))) in f2fs_write_checkpoint()
1676 trace_f2fs_write_checkpoint(sbi->sb, cpc->reason, "start block_ops"); in f2fs_write_checkpoint()
1682 stat_cp_time(cpc, CP_TIME_OP_LOCK); in f2fs_write_checkpoint()
1684 trace_f2fs_write_checkpoint(sbi->sb, cpc->reason, "finish block_ops"); in f2fs_write_checkpoint()
1689 if (cpc->reason & CP_DISCARD) { in f2fs_write_checkpoint()
1690 if (!f2fs_exist_trim_candidates(sbi, cpc)) { in f2fs_write_checkpoint()
1698 f2fs_flush_sit_entries(sbi, cpc); in f2fs_write_checkpoint()
1699 f2fs_clear_prefree_segments(sbi, cpc); in f2fs_write_checkpoint()
1714 err = f2fs_flush_nat_entries(sbi, cpc); in f2fs_write_checkpoint()
1721 f2fs_flush_sit_entries(sbi, cpc); in f2fs_write_checkpoint()
1723 stat_cp_time(cpc, CP_TIME_FLUSH_META); in f2fs_write_checkpoint()
1728 err = do_checkpoint(sbi, cpc); in f2fs_write_checkpoint()
1734 f2fs_clear_prefree_segments(sbi, cpc); in f2fs_write_checkpoint()
1742 stat_cp_time(cpc, CP_TIME_END); in f2fs_write_checkpoint()
1743 check_cp_time(sbi, cpc); in f2fs_write_checkpoint()
1745 if (cpc->reason & CP_RECOVERY) in f2fs_write_checkpoint()
1750 trace_f2fs_write_checkpoint(sbi->sb, cpc->reason, "finish checkpoint"); in f2fs_write_checkpoint()
1752 if (cpc->reason != CP_RESIZE) in f2fs_write_checkpoint()
1798 struct cp_control cpc = { .reason = CP_SYNC, }; in __write_checkpoint_sync() local
1802 err = f2fs_write_checkpoint(sbi, &cpc); in __write_checkpoint_sync()
1886 struct cp_control cpc; in f2fs_issue_checkpoint() local
1888 cpc.reason = __get_cp_reason(sbi); in f2fs_issue_checkpoint()
1889 if (!test_opt(sbi, MERGE_CHECKPOINT) || cpc.reason != CP_SYNC || in f2fs_issue_checkpoint()
1894 ret = f2fs_write_checkpoint(sbi, &cpc); in f2fs_issue_checkpoint()