[PATCH v2 2/2] f2fs: fix to update superblock crc in sanity_check_area_boundary()
From: Chao Yu
Date: Sun Oct 25 2026 - 20:24:58 EST
From: Chao Yu <chao@xxxxxxxxxx>
This patch fixes the bug reported by Sashiko:
We should update superblock crc along w/ raw_super->segment_count in
sanity_check_area_boundary() if sb_checksum feature is enabled.
Cc: stable@xxxxxxxxxx
Fixes: d440c52d3151 ("f2fs: support superblock checksum")
Signed-off-by: Chao Yu <chao@xxxxxxxxxx>
---
v2:
- update crc directly in sanity_check_area_boundary rather than calling
f2fs_commit_super() which will access NULL sbi->raw_super.
fs/f2fs/super.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index b321b9cff351..37d208c6bb53 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -4084,6 +4084,12 @@ static inline bool sanity_check_area_boundary(struct f2fs_sb_info *sbi,
/* fix in-memory information all the time */
raw_super->segment_count = cpu_to_le32((main_end_blkaddr -
segment0_blkaddr) >> log_blocks_per_seg);
+ if (__F2FS_HAS_FEATURE(raw_super, F2FS_FEATURE_SB_CHKSUM)) {
+ __u32 crc = f2fs_crc32(raw_super,
+ offsetof(struct f2fs_super_block, crc));
+
+ raw_super->crc = cpu_to_le32(crc);
+ }
if (f2fs_readonly(sb) || f2fs_hw_is_readonly(sbi)) {
set_sbi_flag(sbi, SBI_NEED_SB_WRITE);
--
2.49.0