From: Jaegeuk Kim <jaegeuk@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux F2FS Dev Mailing List
<linux-f2fs-devel@lists.sourceforge.net>
Subject: [GIT PULL] f2fs for 7.4-rc1
Date: Mon, 26 Oct 2026 19:27:09 +0000 [thread overview]
Message-ID: <at-pjQ691G9O8-2i@google.com> (raw)
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
reply other threads:[~2026-10-26 19:27 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=at-pjQ691G9O8-2i@google.com \
--to=jaegeuk@kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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®