diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 7cdbbbb88e10..86f4e96a9c8a 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -3481,8 +3481,11 @@ void f2fs_allocate_data_block(struct f2fs_sb_info *sbi, struct page *page, */ if (segment_full) { if (type == CURSEG_COLD_DATA_PINNED && - !((curseg->segno + 1) % sbi->segs_per_sec)) + !((curseg->segno + 1) % sbi->segs_per_sec)) { + write_sum_page(sbi, curseg->sum_blk, + GET_SUM_BLOCK(sbi, curseg->segno)); goto skip_new_segment; + } if (from_gc) { get_atssr_segment(sbi, type, se->type,