f2fs: introduce __is_large_section() for cleanup
authorChao Yu <yuchao0@huawei.com>
Wed, 24 Oct 2018 10:37:26 +0000 (18:37 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 2 Jan 2019 23:42:25 +0000 (15:42 -0800)
Introduce a wrapper __is_large_section() to clean up codes.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/debug.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/gc.c
fs/f2fs/segment.c
fs/f2fs/segment.h

index 139b4d5c83d5d0b0f7434b38bbb6105755eaffcb..e327eefdbc023e5642cc9f315d9a35898d3478a8 100644 (file)
@@ -197,7 +197,7 @@ static void update_mem_info(struct f2fs_sb_info *sbi)
        si->base_mem += 2 * SIT_VBLOCK_MAP_SIZE * MAIN_SEGS(sbi);
        si->base_mem += SIT_VBLOCK_MAP_SIZE * MAIN_SEGS(sbi);
        si->base_mem += SIT_VBLOCK_MAP_SIZE;
-       if (sbi->segs_per_sec > 1)
+       if (__is_large_section(sbi))
                si->base_mem += MAIN_SECS(sbi) * sizeof(struct sec_entry);
        si->base_mem += __bitmap_size(sbi, SIT_BITMAP);
 
index d7d5fe5bbac8a2411da44b4c6fcf8de5c884a308..bf82fb9d40d2e00f6d3f3d4672379916bf04fe8d 100644 (file)
@@ -2763,6 +2763,8 @@ static inline void f2fs_update_iostat(struct f2fs_sb_info *sbi,
        spin_unlock(&sbi->iostat_lock);
 }
 
+#define __is_large_section(sbi)                ((sbi)->segs_per_sec > 1)
+
 #define __is_meta_io(fio) (PAGE_TYPE_OF_BIO(fio->type) == META &&      \
                                (!is_read_io(fio->op) || fio->is_meta))
 
index 0f14c1e86694a435f667f4d93b812b105a67601e..7db6faa2d896496d8bd8db23b87f8b1b894fe64e 100644 (file)
@@ -2560,7 +2560,7 @@ static int f2fs_ioc_flush_device(struct file *filp, unsigned long arg)
                return -EFAULT;
 
        if (sbi->s_ndevs <= 1 || sbi->s_ndevs - 1 <= range.dev_num ||
-                       sbi->segs_per_sec != 1) {
+                       __is_large_section(sbi)) {
                f2fs_msg(sbi->sb, KERN_WARNING,
                        "Can't flush %u in %d for segs_per_sec %u != 1\n",
                                range.dev_num, sbi->s_ndevs,
index 46b9a4e33c7f7c0f0f08a73ca1bd9acf9ebb886b..8c02582e3a3361ca31f908ae85884add2bf8ed81 100644 (file)
@@ -1109,7 +1109,7 @@ static int do_garbage_collect(struct f2fs_sb_info *sbi,
        int submitted = 0;
 
        /* readahead multi ssa blocks those have contiguous address */
-       if (sbi->segs_per_sec > 1)
+       if (__is_large_section(sbi))
                f2fs_ra_meta_pages(sbi, GET_SUM_BLOCK(sbi, segno),
                                        sbi->segs_per_sec, META_SSA, true);
 
@@ -1318,7 +1318,7 @@ void f2fs_build_gc_manager(struct f2fs_sb_info *sbi)
        sbi->gc_pin_file_threshold = DEF_GC_FAILED_PINNED_FILES;
 
        /* give warm/cold data area from slower device */
-       if (sbi->s_ndevs && sbi->segs_per_sec == 1)
+       if (sbi->s_ndevs && !__is_large_section(sbi))
                SIT_I(sbi)->last_victim[ALLOC_NEXT] =
                                GET_SEGNO(sbi, FDEV(0).end_blk) + 1;
 }
index f1a57f54e749e497a9bb4133ad299f852b965adf..204d31e58967504b0672f4afd196fff0df1f822f 100644 (file)
@@ -1884,7 +1884,7 @@ void f2fs_clear_prefree_segments(struct f2fs_sb_info *sbi,
        unsigned int start = 0, end = -1;
        unsigned int secno, start_segno;
        bool force = (cpc->reason & CP_DISCARD);
-       bool need_align = test_opt(sbi, LFS) && sbi->segs_per_sec > 1;
+       bool need_align = test_opt(sbi, LFS) && __is_large_section(sbi);
 
        mutex_lock(&dirty_i->seglist_lock);
 
@@ -1916,7 +1916,7 @@ void f2fs_clear_prefree_segments(struct f2fs_sb_info *sbi,
                                        (end - 1) <= cpc->trim_end)
                                continue;
 
-               if (!test_opt(sbi, LFS) || sbi->segs_per_sec == 1) {
+               if (!test_opt(sbi, LFS) || !__is_large_section(sbi)) {
                        f2fs_issue_discard(sbi, START_BLOCK(sbi, start),
                                (end - start) << sbi->log_blocks_per_seg);
                        continue;
@@ -2148,7 +2148,7 @@ static void update_sit_entry(struct f2fs_sb_info *sbi, block_t blkaddr, int del)
        /* update total number of valid blocks to be written in ckpt area */
        SIT_I(sbi)->written_valid_blocks += del;
 
-       if (sbi->segs_per_sec > 1)
+       if (__is_large_section(sbi))
                get_sec_entry(sbi, segno)->valid_blocks += del;
 }
 
@@ -2414,7 +2414,7 @@ static void reset_curseg(struct f2fs_sb_info *sbi, int type, int modified)
 static unsigned int __get_next_segno(struct f2fs_sb_info *sbi, int type)
 {
        /* if segs_per_sec is large than 1, we need to keep original policy. */
-       if (sbi->segs_per_sec != 1)
+       if (__is_large_section(sbi))
                return CURSEG_I(sbi, type)->segno;
 
        if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
@@ -2724,7 +2724,7 @@ int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range)
        struct discard_policy dpolicy;
        unsigned long long trimmed = 0;
        int err = 0;
-       bool need_align = test_opt(sbi, LFS) && sbi->segs_per_sec > 1;
+       bool need_align = test_opt(sbi, LFS) && __is_large_section(sbi);
 
        if (start >= MAX_BLKADDR(sbi) || range->len < sbi->blocksize)
                return -EINVAL;
@@ -3882,7 +3882,7 @@ static int build_sit_info(struct f2fs_sb_info *sbi)
        if (!sit_i->tmp_map)
                return -ENOMEM;
 
-       if (sbi->segs_per_sec > 1) {
+       if (__is_large_section(sbi)) {
                sit_i->sec_entries =
                        f2fs_kvzalloc(sbi, array_size(sizeof(struct sec_entry),
                                                      MAIN_SECS(sbi)),
@@ -4037,7 +4037,7 @@ static int build_sit_entries(struct f2fs_sb_info *sbi)
                                        se->valid_blocks;
                        }
 
-                       if (sbi->segs_per_sec > 1)
+                       if (__is_large_section(sbi))
                                get_sec_entry(sbi, start)->valid_blocks +=
                                                        se->valid_blocks;
                }
@@ -4081,7 +4081,7 @@ static int build_sit_entries(struct f2fs_sb_info *sbi)
                        sbi->discard_blks -= se->valid_blocks;
                }
 
-               if (sbi->segs_per_sec > 1) {
+               if (__is_large_section(sbi)) {
                        get_sec_entry(sbi, start)->valid_blocks +=
                                                        se->valid_blocks;
                        get_sec_entry(sbi, start)->valid_blocks -=
index ab3465faddf1336a7f8f7892bd6685195641bd37..a77f76f528b61597c3ebce03c18d05ff1f25ef74 100644 (file)
@@ -333,7 +333,7 @@ static inline unsigned int get_valid_blocks(struct f2fs_sb_info *sbi,
         * In order to get # of valid blocks in a section instantly from many
         * segments, f2fs manages two counting structures separately.
         */
-       if (use_section && sbi->segs_per_sec > 1)
+       if (use_section && __is_large_section(sbi))
                return get_sec_entry(sbi, segno)->valid_blocks;
        else
                return get_seg_entry(sbi, segno)->valid_blocks;