From 89b664e1c6da79afa3b89619c608fcb5fa7e3f43 Mon Sep 17 00:00:00 2001 From: Yongpeng Yang Date: Tue, 11 Mar 2025 08:51:19 +0900 Subject: [PATCH] f2fs: check curseg->inited before write_sum_page in change_curseg BugLink: https://bugs.launchpad.net/bugs/2101915 [ Upstream commit 43563069e1c1df417d2eed6eca8a22fc6b04691d ] In the __f2fs_init_atgc_curseg->get_atssr_segment calling, curseg->segno is NULL_SEGNO, indicating that there is no summary block that needs to be written. Fixes: 093749e296e2 ("f2fs: support age threshold based garbage collection") Signed-off-by: Yongpeng Yang Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim Signed-off-by: Sasha Levin Signed-off-by: Koichiro Den Signed-off-by: Stefan Bader --- fs/f2fs/segment.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 0ec8e1129ae8..f77a74e8516b 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -2880,7 +2880,8 @@ static void change_curseg(struct f2fs_sb_info *sbi, int type) struct f2fs_summary_block *sum_node; struct page *sum_page; - write_sum_page(sbi, curseg->sum_blk, GET_SUM_BLOCK(sbi, curseg->segno)); + if (curseg->inited) + write_sum_page(sbi, curseg->sum_blk, GET_SUM_BLOCK(sbi, curseg->segno)); __set_test_and_inuse(sbi, new_segno);