[PATCH v4 0/2] f2fs: fix online resize state

From: Wenjie Qi

Date: Fri Oct 16 2026 - 01:44:21 EST


Online shrink changes both persistent SIT state and the geometry used
by pinned allocation. This series keeps those states consistent during
range evacuation and after the geometry changes.

Patch 1 drains the SIT journal during resize even when there are no
new dirty sentries. It is unchanged and retains Daeho's Reviewed-by.

Patch 2 consumes the tail reservation, refreshes the pinned boundary,
and restores both on final checkpoint rollback. It also limits pinned
allocation by the temporarily reduced MAIN_SECS() during evacuation.

Changes in v4 (since v3):
- Bound pinned section allocation by the current MAIN_SECS().

Changes in v3 (since v2):
- Rebase onto f2fs/dev.
- Reduce resizable_tail_secno by the removed sections, down to zero.
- Save the current tail after freeze and restore it on rollback.
- Document that online shrink consumes the reservation.
- Retain Daeho's review for patch 1; request a new review for patch 2.

Changes in v2 (since v1):
- Simplify tail validation and improve rejection diagnostics.
- Validate before taking the mount write reference and recheck
after freeze for concurrent remounts.

v1:
- Initial SIT-journal and pinned-boundary fixes.

Wenjie Qi (2):
f2fs: flush SIT journal during filesystem resize
f2fs: refresh pinned allocation boundary after resize

Documentation/filesystems/f2fs.rst | 3 ++-
fs/f2fs/gc.c | 6 +++++-
fs/f2fs/segment.c | 4 ++--
fs/f2fs/segment.h | 11 +++++++++++
fs/f2fs/super.c | 15 ++-------------
5 files changed, 22 insertions(+), 17 deletions(-)


base-commit: e455328a66a5f4827d4ba96acfe50dbbb0e13b8d
--
2.43.0