summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongpeng Yang <yangyongpeng1@oppo.com>2024-10-21 12:48:01 +0800
committerJaegeuk Kim <jaegeuk@kernel.org>2024-11-01 01:19:01 +0000
commit43563069e1c1df417d2eed6eca8a22fc6b04691d (patch)
tree55dd5cd4dea27d8bc36b8181071ffc469212b20a
parentc3af1f13476ec23fd99c98d060a89be28c1e8871 (diff)
downloadlwn-43563069e1c1df417d2eed6eca8a22fc6b04691d.tar.gz
lwn-43563069e1c1df417d2eed6eca8a22fc6b04691d.zip
f2fs: check curseg->inited before write_sum_page in change_curseg
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 <yangyongpeng1@oppo.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--fs/f2fs/segment.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 96e7abaf42c8..bda7156a2d9d 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -2926,7 +2926,8 @@ static int 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);