f2fs: refactor __allocate_new_segment
authorChristoph Hellwig <hch@lst.de>
Thu, 19 Jan 2023 06:36:22 +0000 (07:36 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 2 Feb 2023 21:37:16 +0000 (13:37 -0800)
Simplify the check whether to allocate a new segment or reuse an open
one.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c

index 50af5fc..3712752 100644 (file)
@@ -2913,16 +2913,12 @@ static void __allocate_new_segment(struct f2fs_sb_info *sbi, int type,
        struct curseg_info *curseg = CURSEG_I(sbi, type);
        unsigned int old_segno;
 
-       if (!curseg->inited)
-               goto alloc;
-
-       if (force || curseg->next_blkoff ||
-               get_valid_blocks(sbi, curseg->segno, new_sec))
-               goto alloc;
-
-       if (!get_ckpt_valid_blocks(sbi, curseg->segno, new_sec))
+       if (!force && curseg->inited &&
+           !curseg->next_blkoff &&
+           !get_valid_blocks(sbi, curseg->segno, new_sec) &&
+           !get_ckpt_valid_blocks(sbi, curseg->segno, new_sec))
                return;
-alloc:
+
        old_segno = curseg->segno;
        new_curseg(sbi, type, true);
        stat_inc_seg_type(sbi, curseg);