Re: [GIT PULL] ext4 updates for 7.4-rc1
From: Theodore Tso
Date: Sat Oct 24 2026 - 22:56:36 EST
Ping?
On Thu, Oct 22, 2026 at 09:56:59AM -0500, Theodore Ts'o wrote:
> The following changes since commit 93f51579e7df248780214094418f205253383cc5:
>
> Linux 7.3-rc4 (2026-09-20 13:48:15 -0700)
>
> are available in the Git repository at:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git tags/ext4_for_linus-7.4-rc1
>
> for you to fetch changes up to 8c4f6e3376348fc3162eed86a05b933921c8f9ed:
>
> ext4: introduce a mount option for iomap buffered I/O path (2026-10-15 10:53:14 -0400)
>
> ----------------------------------------------------------------
> Add support for buffered iomap support in ext4. This is not enabled
> by default, but requires the buffered_iomap mount option, as this mode
> does not support online defragmentation, inline data, fsverify,
> fscrypt, non-extent inodes, and data=journal mode. If buffered_iomap
> is enabled, ext4 will fall back to the original I/O code path
> automatically if necessary. Large writes show significant performance
> improvements when buffered iomap is enabled.
>
> There are also miscellaneous bug fixes and improvements, including for
> fast commit and avoiding deadlocks and out-of-bound reads when
> handling corner cases involving corrupted file systems.
>
> ----------------------------------------------------------------
> Daejun Park (2):
> jbd2: don't advance j_fc_off before the buffer is recorded
> ext4: don't report delalloc data as a hole on indirect-mapped inodes
>
> Hemanth Selam (1):
> ext4: skip extra isize expansion while unmounting
>
> Hsiu-Hsien Lee (1):
> ext4: fix fast commit replay failing on a read-only mount
>
> Jinjie Ruan (2):
> ext4: fix out-of-bounds read in ext4_get_group_info()
> ext4: convert group-count barrier protocol to acquire/release
>
> JonasZhou-oc (1):
> jbd2: avoid false sharing with j_state_lock
>
> Sergey Senozhatsky (1):
> ext4: fix ABBA deadlock in ext4_rmdir()
>
> Zhang Yi (31):
> ext4: simplify size updating in ext4_setattr()
> ext4: factor out ext4_truncate_[up|down]()
> ext4: set EXT4_MAP_NEW flag for delayed allocated blocks
> ext4: recheck extent status tree before block allocation
> ext4: fix orig_mlen initialization in ext4_map_blocks()
> ext4: allow ext4_map_blocks() to start its own transaction handle
> ext4: avoid unnecessary transaction in ext4_map_blocks() for unwritten extents
> ext4: skip block allocation for holes in the data submission path
> ext4: add iomap address space operations for buffered I/O
> ext4: implement buffered read path using iomap
> ext4: pass out extent seq counter when mapping da blocks
> ext4: do not use data=ordered mode for inodes using buffered iomap path
> ext4: implement buffered write path using iomap
> ext4: rework handle credit accounting for unwritten extent conversion
> ext4: implement writeback path using iomap
> ext4: implement mmap path using iomap
> ext4: implement partial block zero range path using iomap
> ext4: drain writeback before removing extents on the iomap path
> ext4: add block mapping tracepoints for iomap buffered I/O path
> ext4: disable online defrag when inode using iomap buffered I/O path
> ext4: add EXT4_STATE_DISKSIZE_GROW_PENDING state bit and helpers
> ext4: submit and wait for pending disksize-grow I/O on writeback
> ext4: advance i_disksize to i_size upon disksize-grow I/O completion
> ext4: defer i_disksize update while DISKSIZE_GROW_PENDING is set
> ext4: submit and wait for disksize-grow I/O in fallocate paths
> ext4: clear DISKSIZE_GROW_PENDING on truncate or error
> ext4: set DISKSIZE_GROW_PENDING after zeroing unaligned EOF block
> ext4: add tracepoints for DISKSIZE_GROW_PENDING set, clear, and wait
> ext4: add tracepoints for EOF block zeroing and disksize-grow I/O
> ext4: partially enable iomap for the buffered I/O path of regular files
> ext4: introduce a mount option for iomap buffered I/O path
>
> guzebing (2):
> ext4: only update tune mount options when requested
> ext4: reject delalloc to nodelalloc before applying remount options
>
> fs/ext4/balloc.c | 2 +-
> fs/ext4/ext4.h | 96 ++-
> fs/ext4/ext4_jbd2.c | 8 +-
> fs/ext4/ext4_jbd2.h | 7 +-
> fs/ext4/extents.c | 131 ++--
> fs/ext4/file.c | 20 +-
> fs/ext4/ialloc.c | 1 +
> fs/ext4/indirect.c | 17 +
> fs/ext4/inode.c | 1448 +++++++++++++++++++++++++++++++++++++--------
> fs/ext4/ioctl.c | 3 +-
> fs/ext4/mballoc.c | 6 +-
> fs/ext4/migrate.c | 2 +
> fs/ext4/move_extent.c | 11 +
> fs/ext4/namei.c | 11 +-
> fs/ext4/page-io.c | 201 +++++++
> fs/ext4/resize.c | 19 +-
> fs/ext4/super.c | 67 ++-
> fs/jbd2/journal.c | 2 +-
> include/linux/jbd2.h | 2 +-
> include/trace/events/ext4.h | 209 +++++++
> 20 files changed, 1927 insertions(+), 336 deletions(-)