···11091109 int submitted = 0;1110111011111111 /* readahead multi ssa blocks those have contiguous address */11121112- if (sbi->segs_per_sec > 1)11121112+ if (__is_large_section(sbi))11131113 f2fs_ra_meta_pages(sbi, GET_SUM_BLOCK(sbi, segno),11141114 sbi->segs_per_sec, META_SSA, true);11151115···13181318 sbi->gc_pin_file_threshold = DEF_GC_FAILED_PINNED_FILES;1319131913201320 /* give warm/cold data area from slower device */13211321- if (sbi->s_ndevs && sbi->segs_per_sec == 1)13211321+ if (sbi->s_ndevs && !__is_large_section(sbi))13221322 SIT_I(sbi)->last_victim[ALLOC_NEXT] =13231323 GET_SEGNO(sbi, FDEV(0).end_blk) + 1;13241324}
+8-8
fs/f2fs/segment.c
···18841884 unsigned int start = 0, end = -1;18851885 unsigned int secno, start_segno;18861886 bool force = (cpc->reason & CP_DISCARD);18871887- bool need_align = test_opt(sbi, LFS) && sbi->segs_per_sec > 1;18871887+ bool need_align = test_opt(sbi, LFS) && __is_large_section(sbi);1888188818891889 mutex_lock(&dirty_i->seglist_lock);18901890···19161916 (end - 1) <= cpc->trim_end)19171917 continue;1918191819191919- if (!test_opt(sbi, LFS) || sbi->segs_per_sec == 1) {19191919+ if (!test_opt(sbi, LFS) || !__is_large_section(sbi)) {19201920 f2fs_issue_discard(sbi, START_BLOCK(sbi, start),19211921 (end - start) << sbi->log_blocks_per_seg);19221922 continue;···21482148 /* update total number of valid blocks to be written in ckpt area */21492149 SIT_I(sbi)->written_valid_blocks += del;2150215021512151- if (sbi->segs_per_sec > 1)21512151+ if (__is_large_section(sbi))21522152 get_sec_entry(sbi, segno)->valid_blocks += del;21532153}21542154···24142414static unsigned int __get_next_segno(struct f2fs_sb_info *sbi, int type)24152415{24162416 /* if segs_per_sec is large than 1, we need to keep original policy. */24172417- if (sbi->segs_per_sec != 1)24172417+ if (__is_large_section(sbi))24182418 return CURSEG_I(sbi, type)->segno;2419241924202420 if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))···27242724 struct discard_policy dpolicy;27252725 unsigned long long trimmed = 0;27262726 int err = 0;27272727- bool need_align = test_opt(sbi, LFS) && sbi->segs_per_sec > 1;27272727+ bool need_align = test_opt(sbi, LFS) && __is_large_section(sbi);2728272827292729 if (start >= MAX_BLKADDR(sbi) || range->len < sbi->blocksize)27302730 return -EINVAL;···38823882 if (!sit_i->tmp_map)38833883 return -ENOMEM;3884388438853885- if (sbi->segs_per_sec > 1) {38853885+ if (__is_large_section(sbi)) {38863886 sit_i->sec_entries =38873887 f2fs_kvzalloc(sbi, array_size(sizeof(struct sec_entry),38883888 MAIN_SECS(sbi)),···40374037 se->valid_blocks;40384038 }4039403940404040- if (sbi->segs_per_sec > 1)40404040+ if (__is_large_section(sbi))40414041 get_sec_entry(sbi, start)->valid_blocks +=40424042 se->valid_blocks;40434043 }···40814081 sbi->discard_blks -= se->valid_blocks;40824082 }4083408340844084- if (sbi->segs_per_sec > 1) {40844084+ if (__is_large_section(sbi)) {40854085 get_sec_entry(sbi, start)->valid_blocks +=40864086 se->valid_blocks;40874087 get_sec_entry(sbi, start)->valid_blocks -=
+1-1
fs/f2fs/segment.h
···333333 * In order to get # of valid blocks in a section instantly from many334334 * segments, f2fs manages two counting structures separately.335335 */336336- if (use_section && sbi->segs_per_sec > 1)336336+ if (use_section && __is_large_section(sbi))337337 return get_sec_entry(sbi, segno)->valid_blocks;338338 else339339 return get_seg_entry(sbi, segno)->valid_blocks;