[GIT PULL] f2fs update for 7.0-rc1

From: Jaegeuk Kim

Date: Fri Feb 13 2026 - 21:45:51 EST


Hi Linus,

Could you please consider this pull request?

Thanks,

The following changes since commit 8f0b4cce4481fb22653697cced8d0d04027cb1e8:

Linux 6.19-rc1 (2025-12-14 16:05:07 +1200)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git tags/f2fs-for-7.0-rc1

for you to fetch changes up to 52190933c37a96164b271f3f30c16099d9eb8c09:

f2fs: sysfs: introduce critical_task_priority (2026-02-10 20:53:21 +0000)

----------------------------------------------------------------
f2fs-for-7.0-rc1

In this development cycle, we focused on several key performance optimizations:
1) introducing large folio support to enhance read speeds for immutable files,
2) reducing checkpoint=enable latency by flushing only committed dirty pages,
and 3) implementing tracepoints to diagnose and resolve lock priority inversion.
Additionally, we introduced the packed_ssa feature to optimize the SSA footprint
when utilizing large block sizes.

Enhancement:
- support large folio for immutable non-compressed case
- support non-4KB block size without packed_ssa feature
- optimize f2fs_enable_checkpoint() to avoid long delay
- optimize f2fs_overwrite_io() for f2fs_iomap_begin
- optimize NAT block loading during checkpoint write
- add write latency stats for NAT and SIT blocks in f2fs_write_checkpoint
- pin files do not require sbi->writepages lock for ordering
- avoid f2fs_map_blocks() for consecutive holes in readpages
- flush plug periodically during GC to maximize readahead effect
- add tracepoints to catch lock overheads
- add several sysfs entries to tune internal lock priorities

Bug fix:
- fix lock priority inversion issue
- fix incomplete block usage in compact SSA summaries
- fix to show simulate_lock_timeout correctly
- fix to avoid mapping wrong physical block for swapfile
- fix IS_CHECKPOINTED flag inconsistency issue caused by concurrent atomic
commit and checkpoint writes
- fix to avoid UAF in f2fs_write_end_io()

----------------------------------------------------------------
Chao Yu (33):
f2fs: fix to do sanity check on nat entry of quota inode
f2fs: add lock elapsed time trace facility for f2fs rwsemphore
f2fs: sysfs: introduce max_lock_elapsed_time
f2fs: trace elapsed time for cp_rwsem lock
f2fs: trace elapsed time for node_change lock
f2fs: trace elapsed time for node_write lock
f2fs: trace elapsed time for gc_lock lock
f2fs: trace elapsed time for cp_global_sem lock
f2fs: trace elapsed time for io_rwsem lock
f2fs: clean up w/ __f2fs_schedule_timeout()
f2fs: fix to use jiffies based precision for DEFAULT_SCHEDULE_TIMEOUT
f2fs: fix timeout precision of f2fs_io_schedule_timeout_killable()
f2fs: rename FAULT_TIMEOUT to FAULT_ATOMIC_TIMEOUT
f2fs: introduce FAULT_LOCK_TIMEOUT
f2fs: sysfs: introduce inject_lock_timeout
f2fs: fix to check sysfs filename w/ gc_pin_file_thresh correctly
Revert "f2fs: block cache/dio write during f2fs_enable_checkpoint()"
f2fs: fix to avoid UAF in f2fs_write_end_io()
f2fs: make FAULT_DISCARD obsolete
f2fs: fix to do sanity check on node footer in __write_node_folio()
f2fs: fix to do sanity check on node footer in {read,write}_end_io
f2fs: detect more inconsistent cases in sanity_check_node_footer()
f2fs: avoid f2fs_map_blocks() for consecutive holes in readpages
f2fs: fix to avoid mapping wrong physical block for swapfile
f2fs: fix error path handling in f2fs_read_data_large_folio()
f2fs: fix to unlock folio in f2fs_read_data_large_folio()
f2fs: check skipped write in f2fs_enable_checkpoint()
f2fs: introduce FAULT_SKIP_WRITE
f2fs: fix to show simulate_lock_timeout correctly
f2fs: decrease maximum flush retry count in f2fs_enable_checkpoint()
f2fs: fix lock priority inversion issue
f2fs: introduce trace_f2fs_priority_update
f2fs: sysfs: introduce critical_task_priority

Daeho Jeong (3):
f2fs: flush plug periodically during GC to maximize readahead effect
f2fs: support non-4KB block size without packed_ssa feature
f2fs: fix incomplete block usage in compact SSA summaries

Jaegeuk Kim (4):
f2fs: support large folio for immutable non-compressed case
f2fs: add a tracepoint to see large folio read submission
f2fs: use folio_end_read
Revert "f2fs: add timeout in f2fs_enable_checkpoint()"

Joanne Chang (1):
f2fs: improve check for enough free sections

Nanzhe Zhao (4):
f2fs: Zero f2fs_folio_state on allocation
f2fs: Accounting large folio subpages before bio submission
f2fs: add 'folio_in_bio' to handle readahead folios with no BIO submission
f2fs: advance index and offset after zeroing in large folio read

Yangyang Zang (1):
f2fs: clean up the type parameter in f2fs_sync_meta_pages()

Yeongjin Gil (1):
f2fs: optimize f2fs_overwrite_io() for f2fs_iomap_begin

Yongpeng Yang (11):
f2fs: clean up the force parameter in __submit_merged_write_cond()
f2fs: return immediately after submitting the specified folio in __submit_merged_write_cond
f2fs: remove non-uptodate folio from the page cache in move_data_block
f2fs: fix out-of-bounds access in sysfs attribute read/write
f2fs: change seq_file_ra_mul and max_io_bytes to unsigned int
f2fs: fix IS_CHECKPOINTED flag inconsistency issue caused by concurrent atomic commit and checkpoint writes
f2fs: avoid unnecessary block mapping lookups in f2fs_read_data_large_folio
f2fs: pin files do not require sbi->writepages lock for ordering
f2fs: add write latency stats for NAT and SIT blocks in f2fs_write_checkpoint
f2fs: change size parameter of __has_cursum_space() to unsigned int
f2fs: optimize NAT block loading during checkpoint write

ZhaoYueNan (1):
f2fs: Update the default value of the documentation ckpt_thread_ioprio

Zhiguo Niu (2):
f2fs: remove some redundant codes in f2fs_quota_enable
f2fs: fix to add gc count stat in f2fs_gc_range

Documentation/ABI/testing/sysfs-fs-f2fs | 62 ++++-
Documentation/filesystems/f2fs.rst | 49 +++-
fs/f2fs/checkpoint.c | 247 ++++++++++++++++--
fs/f2fs/compress.c | 18 +-
fs/f2fs/data.c | 436 +++++++++++++++++++++++++++-----
fs/f2fs/debug.c | 1 +
fs/f2fs/f2fs.h | 251 +++++++++++++-----
fs/f2fs/file.c | 84 +++---
fs/f2fs/gc.c | 86 ++++---
fs/f2fs/inline.c | 10 +-
fs/f2fs/inode.c | 16 +-
fs/f2fs/namei.c | 65 +++--
fs/f2fs/node.c | 99 ++++++--
fs/f2fs/node.h | 8 -
fs/f2fs/recovery.c | 11 +-
fs/f2fs/segment.c | 133 +++++-----
fs/f2fs/segment.h | 108 ++++----
fs/f2fs/super.c | 202 +++++++++------
fs/f2fs/sysfs.c | 111 +++++++-
fs/f2fs/xattr.c | 5 +-
include/linux/f2fs_fs.h | 73 ++++--
include/trace/events/f2fs.h | 142 ++++++++++-
22 files changed, 1671 insertions(+), 546 deletions(-)