The following changes since commit b4432656b36e5cc1d50a1f2dc15357543add530e: Linux 6.15-rc4 (2025-04-27 15:19:23 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git tags/ext4_for_linus-6.16-rc1 for you to fetch changes up to 7acd1b315cdcc03b11a3aa1f9c9c85d99ddb4f0e: ext4: Add a WARN_ON_ONCE for querying LAST_IN_LEAF instead (2025-05-20 14:21:00 -0400) ---------------------------------------------------------------- New ext4 features and performance improvements: * Fast commit performance improvements * Multi-fsblock atomic write support for bigalloc file systems * Large folio support for regular files This last can result in really stupendous performance for the right workloads. For example, see [1] where the Kernel Test Robot reported over 37% improvement on a large sequential I/O workload. [1] https://lore.kernel.org/all/202505161418.ec0d753f-lkp@xxxxxxxxx/ There are also the usual bug fixes and cleanups. Of note are cleanups of the extent status tree to fix potential races that could result in the extent status tree getting corrupted under heavy siulatneous allocation and deallocation to a single file. ---------------------------------------------------------------- Arnd Bergmann (1): ext4: avoid -Wformat-security warning Brian Foster (1): ext4: only dirty folios when data journaling regular files Christoph Hellwig (1): ext4: use writeback_iter in ext4_journalled_submit_inode_data_buffers Eric Biggers (4): ext4: remove sbi argument from ext4_chksum() ext4: remove sb argument from ext4_superblock_csum() jbd2: remove journal_t argument from jbd2_chksum() jbd2: remove journal_t argument from jbd2_superblock_csum() Harshad Shirwadkar (9): ext4: convert i_fc_lock to spinlock ext4: for committing inode, make ext4_fc_track_inode wait ext4: mark inode dirty before grabbing i_data_sem in ext4_setattr ext4: rework fast commit commit path ext4: drop i_fc_updates from inode fc info ext4: update code documentation ext4: temporarily elevate commit thread priority ext4: convert s_fc_lock to mutex type ext4: hold s_fc_lock while during fast commit Jan Kara (1): ext4: fix calculation of credits for extent tree modification Jeongjun Park (1): jbd2: fix data-race and null-ptr-deref in jbd2_journal_dirty_metadata() Ritesh Harjani (IBM) (12): ext4: Document an edge case for overwrites ext4: Check if inode uses extents in ext4_inode_can_atomic_write() ext4: Make ext4_meta_trans_blocks() non-static for later use ext4: Add support for EXT4_GET_BLOCKS_QUERY_LEAF_BLOCKS ext4: Add multi-fsblock atomic write support with bigalloc ext4: Enable support for ext4 multi-fsblock atomic write using bigalloc ext4: Add atomic block write documentation ext4: Unwritten to written conversion requires EXT4_EX_NOCACHE ext4: Simplify last in leaf check in ext4_map_query_blocks ext4: Rename and document EXT4_EX_FILTER to EXT4_EX_QUERY_FILTER ext4: Simplify flags in ext4_map_query_blocks() ext4: Add a WARN_ON_ONCE for querying LAST_IN_LEAF instead Thadeu Lima de Souza Cascardo (1): ext4: inline: fix len overflow in ext4_prepare_inline_data Zhang Yi (21): ext4: ext4: unify EXT4_EX_NOCACHE|NOFAIL flags in ext4_ext_remove_space() ext4: generalize EXT4_GET_BLOCKS_IO_SUBMIT flag usage ext4: prevent stale extent cache entries caused by concurrent I/O writeback ext4: prevent stale extent cache entries caused by concurrent fiemap ext4: prevent stale extent cache entries caused by concurrent get es_cache ext4: factor out is_special_ino() ext4: introduce ext4_check_map_extents_env() debug helper ext4: check env when mapping and modifying extents ext4: clairfy the rules for modifying extents ext4: fix out of bounds punch offset ext4: fix incorrect punch max_end ext4: factor out ext4_get_maxbytes() ext4: ensure i_size is smaller than maxbytes ext4: make ext4_mpage_readpages() support large folios ext4: make regular file's buffered write path support large folios ext4: make __ext4_block_zero_page_range() support large folio ext4/jbd2: convert jbd2_journal_blocks_per_page() to support large folio ext4: correct the journal credits calculations of allocating blocks ext4: make the writeback path support large folios ext4: make online defragmentation support large folios ext4: enable large folio for regular file Documentation/filesystems/ext4/atomic_writes.rst | 225 ++++++++ Documentation/filesystems/ext4/overview.rst | 1 + fs/ext4/bitmap.c | 8 +- fs/ext4/ext4.h | 91 +++- fs/ext4/ext4_jbd2.c | 3 +- fs/ext4/ext4_jbd2.h | 4 +- fs/ext4/extents.c | 177 +++++-- fs/ext4/extents_status.c | 35 +- fs/ext4/fast_commit.c | 460 +++++++++-------- fs/ext4/file.c | 14 +- fs/ext4/ialloc.c | 8 +- fs/ext4/inline.c | 3 +- fs/ext4/inode.c | 510 ++++++++++++++++--- fs/ext4/ioctl.c | 16 +- fs/ext4/mmp.c | 2 +- fs/ext4/move_extent.c | 11 +- fs/ext4/namei.c | 10 +- fs/ext4/orphan.c | 13 +- fs/ext4/readpage.c | 28 +- fs/ext4/resize.c | 2 +- fs/ext4/super.c | 84 ++- fs/ext4/xattr.c | 10 +- fs/jbd2/commit.c | 6 +- fs/jbd2/journal.c | 23 +- fs/jbd2/recovery.c | 10 +- fs/jbd2/transaction.c | 5 +- include/linux/jbd2.h | 5 +- 27 files changed, 1290 insertions(+), 474 deletions(-) create mode 100644 Documentation/filesystems/ext4/atomic_writes.rst