[PATCH v3 0/3] f2fs: fix dentry recovery and MAIN_AREA validation

From: Cheng Yongkang

Date: Mon Oct 26 2026 - 06:52:32 EST


v3:
- Add the missing Fixes trailers to 1/3 and 3/3; 2/3 already carried its
Fixes tag in v2.
- Add Cc: stable@xxxxxxxxxxxxxxx to each fix. No code change from v2.

v2:
- Rebase patch 1/3 onto current f2fs dev. recover_dentry() now takes a
struct f2fs_cached_block and sets dir from fsync_entry->inode; the
S_ISDIR() check is unchanged.
- Patches 2/3 and 3/3 are unchanged.

This series fixes three independent issues found while validating crafted
f2fs images:

1. reject a non-directory i_pino during dentry recovery;
2. reject MAIN_AREA boundary underflow in the alignment fix;
3. refresh the superblock CRC after that alignment fix.

Each patch is a single logical change and compiles on its own. All three
were validated in QEMU on the KASAN kernel: baseline trigger, patched
no-trigger or clean rejection, and a normal filesystem mount/write/fsck
regression. The baseline source and build were restored and
hash-verified after each run. The series applies cleanly to f2fs dev
(fd106ada4dee).

Cheng Yongkang (3):
f2fs: reject non-directory parent inode during dentry recovery
f2fs: reject MAIN_AREA boundary underflow
f2fs: refresh superblock CRC after MAIN_AREA alignment fix

fs/f2fs/recovery.c | 7 +++++++
fs/f2fs/super.c | 13 +++++++++++++
2 files changed, 20 insertions(+)

--
2.34.1