mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [GIT PULL] f2fs for 7.4-rc1
@ 2026-10-26 19:27 Jaegeuk Kim
  0 siblings, 0 replies; only message in thread
From: Jaegeuk Kim @ 2026-10-26 19:27 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linux Kernel Mailing List, Linux F2FS Dev Mailing List

Hi Linus,

Could you please consider this pull request?

Thanks,

The following changes since commit cee9395acd8043be0644b25c34bfa86623f2b935:

  Linux 7.3-rc1 (2026-08-30 13:34:40 -0700)

are available in the Git repository at:

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

for you to fetch changes up to ee17c0cd763b622012bc725253015b6a721b48f8:

  f2fs: compress: don't overwrite populated compress cache entry (2026-10-26 15:34:50 +0000)

----------------------------------------------------------------
f2fs-for-7.4-rc1

In this round, key enhancements focus on introducing a dedicated metadata
cache infrastructure and dynamically parameterizing on-disk block layouts
and geometry macros. Moving meta, node, and compress blocks out of the VFS
page cache removes the page == block size assumption for metadata, which
along with dynamic block layout descriptions paves the way for large folio
and page != block support in the future. We also opt in to multigrain
timestamps, add bio entry-count throttling for asynchronous write_end_io
completion, and expose the resizable_tail feature via sysfs.

Alongside these features, critical bug fixes resolve race conditions across
compression, mmap write faults, checkpoint/shutdown, and filesystem freeze,
prevent write bio splitting and GC holes on sequential zoned devices, and
strengthen on-disk sanity checks for SIT/NAT bitmaps, read-only curseg
entries, and device aliasing. Additional stability patches address online
resize, roll-forward recovery, atomic file operations, quota handling, and
dirty inode syncing livelocks.

Enhancement:
 - implement dedicated metadata cache for meta, node, and compress blocks
   to decouple metadata from page cache for large folio and page != block
   support
 - dynamically describe SIT, NAT, orphan, dentry, node, and xattr block
   layouts and parameterize block/sector/node conversion macros
 - opt in to multigrain timestamps
 - introduce max_atc_write_bio_entry_cnt sysfs node
 - expose resizable_tail feature via sysfs
 - avoid unnecessary reads in f2fs_update_meta_block()

Bug fix:
 - compress: force out-place update for all writes, allow pinning empty
   compressed files, and fix truncate/writeback and cache population races
 - zone: avoid bio split and GC target block grab failure on sequential zones
 - quota: convert inline quota files on quotaon, fix flush failure during
   freeze, and restore empty string mount options
 - atomic/mmap: disallow mmap write and data-modifying fallocate on atomic
   files, avoid truncate_inode_pages_final() on live inodes, and fix races in
   f2fs_vm_page_mkwrite()
 - resize/alias: refresh pinned allocation boundary and flush SIT journal
   during resize, and drop pending discards before reserving device alias
 - sanity check: bound SIT/NAT bitmaps by checkpoint pack, check all
   cur_*_segno[] on readonly images, and validate multi-device on device alias
 - recovery/cp: release removed xattr node in roll-forward recovery, invalidate
   curseg on change_curseg() failure, and return -EIO for lost inode block
   after cp_error
 - fix livelock in syncing dirty inodes and preserve APPEND/UPDATE ino entries
 - use bio_in_atomic() in f2fs_{read,write}_end_io()
 - fix 32-bit shift truncation in mount option bitmasks and defragment range

And, the series includes a number of minor bug fixes.

----------------------------------------------------------------
Arnd Bergmann (1):
      f2fs: quota: fix unused-label warning

Chao Yu (35):
      f2fs: parameterize node helpers and macros
      f2fs: fix to avoid folio->mapping dereference in is_{meta, node}_folio()
      f2fs: compress: fix to handle race between truncate and writeback
      f2fs: cache: implement metadata cache
      f2fs: cache: initialize meta cache
      f2fs: cache: introduce shrinker
      f2fs: cache: introduce writeback thread
      f2fs: cache: use meta cache
      f2fs: cache: initialize node cache
      f2fs: cache: use node cache
      f2fs: cache: initialize compress cache
      f2fs: cache: use compress cache
      f2fs: cache: support fault injection
      f2fs: cache: introduce tracepoints
      f2fs: cache: show per-cache usage in debugfs
      f2fs: cache: pin cached block in f2fs_end_cache_writeback()
      f2fs: cache: pin cached block in f2fs_unlock_cache()
      f2fs: fix to check continuousness in f2fs_sync_meta_pages() correctly
      f2fs: fix to set sbi->log_blocksize in advance
      Revert "f2fs: skip node_change lock for inline data writes"
      f2fs: zone: fix to avoid bio split on sequential zone
      f2fs: cache: introduce metadata_cache sysfs node
      f2fs: cache: shrink meta and node caches in f2fs_balance_fs_bg
      f2fs: cache: wake up f2fs_writeback when exceeding threshold
      f2fs: cache: support asynchronous write_end_io
      f2fs: introduce max_atc_write_bio_entry_cnt
      MAINTAINERS: f2fs: add dev branch to git tree entry
      f2fs: fix to invalidate curseg if change_curseg() fails
      f2fs: fix to use bio_in_atomic() in f2fs_write_end_io()
      f2fs: fix to use bio_in_atomic() in f2fs_read_end_io()
      f2fs: fix to avoid potential reference count leak in do_garbage_collect()
      f2fs: zone: fix to don't fail to grab GC target block on zoned device
      f2fs: fix to fetch ino via ino_of_node() under cache lock
      f2fs: fix to update superblock crc in sanity_check_area_boundary()
      f2fs: compress: don't overwrite populated compress cache entry

Daeho Jeong (10):
      f2fs: drop pending discard commands before reserving device alias
      f2fs: fix livelock in syncing dirty inodes
      f2fs: cache: count the temporary pins apart from the regular references
      f2fs: convert inline quota files when turning quota on
      f2fs: disallow mmap write and data-modifying fallocate on atomic files
      f2fs: return -EIO for a lost inode block after cp_error
      f2fs: release a removed xattr node in roll-forward recovery
      f2fs: use BIT_ULL for mount option bitmasks
      f2fs: expose resizable_tail feature via sysfs
      f2fs: don't use truncate_inode_pages_final() on live inodes

Hengyu Liang (1):
      f2fs: allow empty strings for journaled quota options

Jaegeuk Kim (2):
      f2fs: rename page_count with cache_count
      f2fs: rename nr_pages_to_skip with nr_caches_to_skip

Jeff Layton (1):
      f2fs: opt in to multigrain timestamps

Jianan Huang (2):
      f2fs: quota: fix stale lock holder on remount failure
      f2fs: quota: fix quota flush failure during filesystem freeze

Jiucheng Xu (1):
      f2fs: force out-place update for all writes on compressed file

Joanne Chang (1):
      f2fs: allow pinning empty compressed files

Kaixuan Li (2):
      f2fs: check every cur_*_segno[] entry on readonly images
      f2fs: bound the SIT/NAT bitmaps by the checkpoint pack

Kelvin Zhang (11):
      f2fs: initialize sb_info early in f2fs_fill_super
      f2fs: describe SIT block layout dynamically
      f2fs: describe NAT block layout dynamically
      f2fs: describe orphan block layout dynamically
      f2fs: describe dentry block layout dynamically
      f2fs: describe {i,d,id}node block layout dynamically
      f2fs: describe xattr block layout dynamically
      f2fs: parameterize sector conversion macros
      f2fs: parameterize byte and block conversion macros
      f2fs: describe node tree geometry dynamically
      f2fs: parameterize block size and mask macros

Nanzhe Zhao (2):
      f2fs: remove mappedtodisk flag usage in mmap write path
      f2fs: read i_size once in f2fs_vm_page_mkwrite

Seongjae Jeong (5):
      f2fs: skip node_change lock for inline data writes
      f2fs: reject device aliasing without a multi-device configuration
      f2fs: fix termination of f2fs_sync_meta_caches()
      f2fs: avoid unnecessary reads in f2fs_update_meta_block()
      f2fs: fix submit accounting for IPU writeback

Wenjie Qi (3):
      f2fs: wait for inode record work before clearing ino bitmaps
      f2fs: flush SIT journal during filesystem resize
      f2fs: refresh pinned allocation boundary after resize

Zhan Xusheng (1):
      f2fs: fix defragment writeback range truncation on 32-bit

Zhiguo Niu (1):
      f2fs: fix to record both APPEND and UPDATE ino entries

 Documentation/ABI/testing/sysfs-fs-f2fs |   41 +-
 Documentation/filesystems/f2fs.rst      |    3 +-
 MAINTAINERS                             |    2 +-
 fs/f2fs/Makefile                        |    2 +-
 fs/f2fs/acl.c                           |   26 +-
 fs/f2fs/acl.h                           |    8 +-
 fs/f2fs/cache.c                         |  894 ++++++++++++++++++++
 fs/f2fs/cache.h                         |  252 ++++++
 fs/f2fs/checkpoint.c                    |  568 +++++++------
 fs/f2fs/compress.c                      |  195 ++---
 fs/f2fs/data.c                          |  657 ++++++++++-----
 fs/f2fs/debug.c                         |  100 ++-
 fs/f2fs/dir.c                           |  221 ++---
 fs/f2fs/extent_cache.c                  |   25 +-
 fs/f2fs/f2fs.h                          |  518 +++++++-----
 fs/f2fs/file.c                          |  241 +++---
 fs/f2fs/gc.c                            |  242 +++---
 fs/f2fs/inline.c                        |  293 +++----
 fs/f2fs/inode.c                         |  242 +++---
 fs/f2fs/iostat.h                        |   11 +
 fs/f2fs/namei.c                         |  114 +--
 fs/f2fs/node.c                          | 1343 ++++++++++++++++---------------
 fs/f2fs/node.h                          |  193 +++--
 fs/f2fs/recovery.c                      |  255 +++---
 fs/f2fs/segment.c                       |  445 +++++-----
 fs/f2fs/segment.h                       |  100 ++-
 fs/f2fs/shrinker.c                      |   16 +-
 fs/f2fs/super.c                         |  451 +++++++----
 fs/f2fs/sysfs.c                         |   44 +-
 fs/f2fs/verity.c                        |    6 +-
 fs/f2fs/xattr.c                         |  133 +--
 fs/f2fs/xattr.h                         |   23 +-
 include/linux/f2fs_fs.h                 |  140 ++--
 include/trace/events/f2fs.h             |   71 ++
 34 files changed, 4901 insertions(+), 2974 deletions(-)
 create mode 100644 fs/f2fs/cache.c
 create mode 100644 fs/f2fs/cache.h

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-26 19:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-26 19:27 [GIT PULL] f2fs for 7.4-rc1 Jaegeuk Kim

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®