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

Wenjie Qi posted 2 patches 4 weeks ago
fs/f2fs/gc.c      | 27 ++++++++++++++++++++++++---
fs/f2fs/segment.c |  2 +-
fs/f2fs/segment.h | 13 +++++++++++++
fs/f2fs/super.c   | 15 ++-------------
4 files changed, 40 insertions(+), 17 deletions(-)
[PATCH v2 0/2] f2fs: fix online resize state
Posted by Wenjie Qi 4 weeks ago
Online filesystem shrink changes both persistent SIT state and the
in-memory geometry used by pinned allocation. Two stale-state paths can
leave old information active after the main area is reduced.

Patch 1 makes the resize checkpoint drain existing SIT journal entries
through the normal SIT-area write path even when there are no newly
dirty sentries. Patch 2 refreshes the pinned allocation boundary after
every geometry change and rejects a shrink that conflicts with the
configured resizable tail.

Changes since v1:
- Simplify the incompatible-tail condition.
- Log the main, shrink, and tail section counts on rejection.
- Validate before acquiring the mount write reference.
- Restore compact formatting in the shared boundary helper.
- Recheck after freeze to cover a concurrent remount option change.

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

 fs/f2fs/gc.c      | 27 ++++++++++++++++++++++++---
 fs/f2fs/segment.c |  2 +-
 fs/f2fs/segment.h | 13 +++++++++++++
 fs/f2fs/super.c   | 15 ++-------------
 4 files changed, 40 insertions(+), 17 deletions(-)

-- 
2.43.0
Re: [f2fs-dev] [PATCH v2 0/2] f2fs: fix online resize state
Posted by Wenjie Qi 2 days, 17 hours ago
Hi Jaegeuk and Chao,

Just a gentle ping on this series.

On Fri, Aug 29, 2026 at 02:05:22PM +0800, Wenjie Qi wrote:
> Online filesystem shrink changes both persistent SIT state and the
> in-memory geometry used by pinned allocation. Two stale-state paths can
> leave old information active after the main area is reduced.
>
> Patch 1 makes the resize checkpoint drain existing SIT journal entries
> through the normal SIT-area write path even when there are no newly
> dirty sentries. Patch 2 refreshes the pinned allocation boundary after
> every geometry change and rejects a shrink that conflicts with the
> configured resizable tail.

Patch 2/2 has received Daeho's Reviewed-by after the concurrent-remount
rationale and test were clarified.

Please let me know if another revision or additional testing is needed.

Thanks,
Wenjie