Loading fs/f2fs/segment.c +10 −5 Original line number Original line Diff line number Diff line Loading @@ -1528,17 +1528,22 @@ static int get_ssr_segment(struct f2fs_sb_info *sbi, int type) { { struct curseg_info *curseg = CURSEG_I(sbi, type); struct curseg_info *curseg = CURSEG_I(sbi, type); const struct victim_selection *v_ops = DIRTY_I(sbi)->v_ops; const struct victim_selection *v_ops = DIRTY_I(sbi)->v_ops; int i; int i, n; /* need_SSR() already forces to do this */ /* need_SSR() already forces to do this */ if (v_ops->get_victim(sbi, &(curseg)->next_segno, BG_GC, type, SSR)) if (v_ops->get_victim(sbi, &(curseg)->next_segno, BG_GC, type, SSR)) return 1; return 1; if (IS_NODESEG(type)) /* For node segments, let's do SSR more intensively */ return 0; if (IS_NODESEG(type)) { i = CURSEG_HOT_NODE; n = CURSEG_COLD_NODE; } else { i = CURSEG_HOT_DATA; n = CURSEG_COLD_DATA; } /* For data segments, let's do SSR more intensively */ for (; i <= n; i++) { for (i = CURSEG_HOT_DATA; i <= CURSEG_COLD_DATA; i++) { if (i == type) if (i == type) continue; continue; if (v_ops->get_victim(sbi, &(curseg)->next_segno, if (v_ops->get_victim(sbi, &(curseg)->next_segno, Loading Loading
fs/f2fs/segment.c +10 −5 Original line number Original line Diff line number Diff line Loading @@ -1528,17 +1528,22 @@ static int get_ssr_segment(struct f2fs_sb_info *sbi, int type) { { struct curseg_info *curseg = CURSEG_I(sbi, type); struct curseg_info *curseg = CURSEG_I(sbi, type); const struct victim_selection *v_ops = DIRTY_I(sbi)->v_ops; const struct victim_selection *v_ops = DIRTY_I(sbi)->v_ops; int i; int i, n; /* need_SSR() already forces to do this */ /* need_SSR() already forces to do this */ if (v_ops->get_victim(sbi, &(curseg)->next_segno, BG_GC, type, SSR)) if (v_ops->get_victim(sbi, &(curseg)->next_segno, BG_GC, type, SSR)) return 1; return 1; if (IS_NODESEG(type)) /* For node segments, let's do SSR more intensively */ return 0; if (IS_NODESEG(type)) { i = CURSEG_HOT_NODE; n = CURSEG_COLD_NODE; } else { i = CURSEG_HOT_DATA; n = CURSEG_COLD_DATA; } /* For data segments, let's do SSR more intensively */ for (; i <= n; i++) { for (i = CURSEG_HOT_DATA; i <= CURSEG_COLD_DATA; i++) { if (i == type) if (i == type) continue; continue; if (v_ops->get_victim(sbi, &(curseg)->next_segno, if (v_ops->get_victim(sbi, &(curseg)->next_segno, Loading