From 71d0fc4bc7a5eacb1ef434baf0269d6056d3cdb1 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 19 Feb 2026 11:02:23 +0100 Subject: [PATCH] 6.18-stable patches added patches: f2fs-fix-incomplete-block-usage-in-compact-ssa-summaries.patch --- ...block-usage-in-compact-ssa-summaries.patch | 62 +++++++++++++++++++ queue-6.18/series | 1 + 2 files changed, 63 insertions(+) create mode 100644 queue-6.18/f2fs-fix-incomplete-block-usage-in-compact-ssa-summaries.patch diff --git a/queue-6.18/f2fs-fix-incomplete-block-usage-in-compact-ssa-summaries.patch b/queue-6.18/f2fs-fix-incomplete-block-usage-in-compact-ssa-summaries.patch new file mode 100644 index 0000000000..d2e009b219 --- /dev/null +++ b/queue-6.18/f2fs-fix-incomplete-block-usage-in-compact-ssa-summaries.patch @@ -0,0 +1,62 @@ +From 91b76f1059b60f453b51877f29f0e35693737383 Mon Sep 17 00:00:00 2001 +From: Daeho Jeong +Date: Mon, 26 Jan 2026 14:28:01 -0800 +Subject: f2fs: fix incomplete block usage in compact SSA summaries + +From: Daeho Jeong + +commit 91b76f1059b60f453b51877f29f0e35693737383 upstream. + +In a previous commit, a bug was introduced where compact SSA summaries +failed to utilize the entire block space in non-4KB block size +configurations, leading to inefficient space management. + +This patch fixes the calculation logic to ensure that compact SSA +summaries can fully occupy the block regardless of the block size. + +Reported-by: Chris Mason +Fixes: e48e16f3e37f ("f2fs: support non-4KB block size without packed_ssa feature") +Signed-off-by: Daeho Jeong +Reviewed-by: Chao Yu +Signed-off-by: Jaegeuk Kim +Cc: Jiri Slaby +Signed-off-by: Greg Kroah-Hartman +--- + fs/f2fs/segment.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/fs/f2fs/segment.c ++++ b/fs/f2fs/segment.c +@@ -2689,12 +2689,12 @@ int f2fs_npages_for_summary_flush(struct + valid_sum_count += f2fs_curseg_valid_blocks(sbi, i); + } + +- sum_in_page = (sbi->sum_blocksize - 2 * sbi->sum_journal_size - ++ sum_in_page = (sbi->blocksize - 2 * sbi->sum_journal_size - + SUM_FOOTER_SIZE) / SUMMARY_SIZE; + if (valid_sum_count <= sum_in_page) + return 1; + else if ((valid_sum_count - sum_in_page) <= +- (sbi->sum_blocksize - SUM_FOOTER_SIZE) / SUMMARY_SIZE) ++ (sbi->blocksize - SUM_FOOTER_SIZE) / SUMMARY_SIZE) + return 2; + return 3; + } +@@ -4337,7 +4337,7 @@ static int read_compacted_summaries(stru + s = (struct f2fs_summary *)(kaddr + offset); + sum_entries(seg_i->sum_blk)[j] = *s; + offset += SUMMARY_SIZE; +- if (offset + SUMMARY_SIZE <= sbi->sum_blocksize - ++ if (offset + SUMMARY_SIZE <= sbi->blocksize - + SUM_FOOTER_SIZE) + continue; + +@@ -4510,7 +4510,7 @@ static void write_compacted_summaries(st + *summary = sum_entries(seg_i->sum_blk)[j]; + written_size += SUMMARY_SIZE; + +- if (written_size + SUMMARY_SIZE <= PAGE_SIZE - ++ if (written_size + SUMMARY_SIZE <= sbi->blocksize - + SUM_FOOTER_SIZE) + continue; + diff --git a/queue-6.18/series b/queue-6.18/series index ee18671074..070fc3a875 100644 --- a/queue-6.18/series +++ b/queue-6.18/series @@ -41,3 +41,4 @@ iommu-arm-smmu-qcom-do-not-register-driver-in-probe.patch usb-serial-option-add-telit-fn920c04-rndis-compositions.patch f2fs-fix-to-do-sanity-check-on-node-footer-in-__write_node_folio.patch f2fs-fix-to-do-sanity-check-on-node-footer-in-read-write-_end_io.patch +f2fs-fix-incomplete-block-usage-in-compact-ssa-summaries.patch -- 2.47.3