[GIT PULL] ext4 changes for 7.2-rc1

From: Theodore Ts'o

Date: Thu Jun 18 2026 - 09:07:01 EST


The following changes since commit 5200f5f493f79f14bbdc349e402a40dfb32f23c8:

Linux 7.1-rc4 (2026-05-17 13:59:58 -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.2-rc1

for you to fetch changes up to c143957520c6c9b5cd72e0de8b52b814f0c576fe:

ext4: validate donor file superblock early in EXT4_IOC_MOVE_EXT (2026-06-10 10:53:50 -0400)

----------------------------------------------------------------
Various ext4 updates for 7.2-rc1:

* A major rework of the fast commit mechanism to avoid lock
contention and deadlocks. We also export snapshot statistics
in /proc/fs/ext4/*/fc_info.
* Performance optimization for directory hash computation by
processing input in 4-byte chunks and removing function pointers,
along with new KUnit tests for directory hash.
* Cleanups in JBD2 to remove special slabs and use kmalloc() instead.
* Various bug fixes, including:
- Early validation of donor superblock in EXT4_IOC_MOVE_EXT to avoid
cross-fs deadlock
- Fix for a kernel BUG in ext4_write_inline_data_end under
data=journal
- Fix for a NULL dereference in jbd2_journal_dirty_metadata when
handle is aborted
- Fix for an underflow in JBD2 fast commit block initialization check
- Fix for LOGFLUSH shutdown ordering to ensure ordered data writeback
- Miscellaneous fixes for error path return values and KUnit assertions.

----------------------------------------------------------------
Abdellah Ouhbi (1):
ext4: Use %pe to print PTR_ERR()

Aditya Prakash Srivastava (1):
ext4: fix kernel BUG in ext4_write_inline_data_end

Deepanshu Kartikey (1):
jbd2: check for aborted handle in jbd2_journal_dirty_metadata()

Guan-Chun Wu (2):
ext4: add Kunit coverage for directory hash computation
ext4: improve str2hashbuf by processing 4-byte chunks and removing function pointers

Hongling Zeng (1):
ext4: fix ERR_PTR(0) in ext4_mkdir()

Junrui Luo (1):
jbd2: fix integer underflow in jbd2_journal_initialize_fast_commit()

Li Chen (8):
ext4: fix fast commit wait/wake bit mapping on 64-bit
ext4: fast commit: snapshot inode state before writing log
ext4: lockdep: handle i_data_sem subclassing for special inodes
ext4: fast commit: avoid waiting for FC_COMMITTING
ext4: fast commit: avoid self-deadlock in inode snapshotting
ext4: fast commit: avoid i_data_sem by dropping ext4_map_blocks() in snapshots
ext4: fast commit: add lock_updates tracepoint
ext4: fast commit: export snapshot stats in fc_info

Matthew Wilcox (Oracle) (2):
ext4: remove mention of PageWriteback
jbd2: remove special jbd2 slabs

Ryota Sakamoto (1):
ext4: replace KUnit tests for memcmp() with KUNIT_ASSERT_MEMEQ()

Yun Zhou (1):
ext4: validate donor file superblock early in EXT4_IOC_MOVE_EXT

Zhang Yi (1):
ext4: fix LOGFLUSH shutdown ordering to allow ordered-mode data writeback

fs/ext4/Makefile | 2 +-
fs/ext4/ext4.h | 93 ++++-
fs/ext4/extents.c | 4 +-
fs/ext4/fast_commit.c | 784 ++++++++++++++++++++++++++++++++---------
fs/ext4/hash-test.c | 567 +++++++++++++++++++++++++++++
fs/ext4/hash.c | 68 ++--
fs/ext4/inode.c | 54 ++-
fs/ext4/ioctl.c | 15 +-
fs/ext4/mballoc-test.c | 9 +-
fs/ext4/namei.c | 6 +-
fs/ext4/page-io.c | 2 +-
fs/ext4/super.c | 13 +-
fs/jbd2/commit.c | 8 +-
fs/jbd2/journal.c | 127 +------
fs/jbd2/transaction.c | 17 +-
include/linux/jbd2.h | 3 -
include/trace/events/ext4.h | 61 ++++
17 files changed, 1495 insertions(+), 338 deletions(-)
create mode 100644 fs/ext4/hash-test.c