[GIT PULL] exfat update for 7.1-rc1
From: Namjae Jeon
Date: Sun Apr 12 2026 - 19:58:09 EST
Hi Linus,
This is exfat update pull request for v7.1-rc1. I add a description of
this pull request below. Please pull exfat with following ones.
Thanks!
The following changes since commit 7dff99b354601dd01829e1511711846e04340a69:
Remove WARN_ALL_UNSEEDED_RANDOM kernel config option (2026-02-23
11:18:48 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat.git
tags/exfat-for-7.1-rc1
for you to fetch changes up to 08cf4a8181b4378a0a50ea370391f30032c4e4ec:
exfat: use exfat_chain_advance helper (2026-04-03 22:41:10 +0900)
----------------------------------------------------------------
Description for this pull request:
- Implement FALLOC_FL_ALLOCATE_RANGE to add support for preallocating
clusters without zeroing, helping to reduce file fragmentation.
- Add a unified block readahead helper for FAT chain conversion, bitmap
allocation, and directory entry lookups.
- Optimize exfat_chain_cont_cluster() by caching buffer heads to minimize
mark_buffer_dirty() and mirroring overhead during NO_FAT_CHAIN to
FAT_CHAIN conversion.
- Switch to truncate_inode_pages_final() in evict_inode() to prevent
BUG_ON caused by shadow entries during reclaim.
- Fix a 32-bit truncation bug in directory entry calculations by ensuring
proper bitwise coercion.
- Fix sb->s_maxbytes calculation to correctly reflect the maximum possible
volume size for a given cluster size, resolving xfstests generic/213.
- Introduced exfat_cluster_walk() helper to traverse FAT chains by
a specified step, handling both ALLOC_NO_FAT_CHAIN and ALLOC_FAT_CHAIN
modes.
- Introduced exfat_chain_advance() helper to advance an exfat_chain
structure, updating both the current cluster and remaining size.
- Remove dead assignments and fix Smatch warnings.
----------------------------------------------------------------
Chi Zhiling (12):
exfat: add block readahead in exfat_chain_cont_cluster
exfat: use readahead helper in exfat_allocate_bitmap
exfat: use readahead helper in exfat_get_dentry
exfat: drop redundant sec parameter from exfat_mirror_bh
exfat: optimize exfat_chain_cont_cluster with cached buffer heads
exfat: fix error handling for FAT table operations
exfat: fix incorrect directory checksum after rename to shorter name
exfat: introduce exfat_cluster_walk helper
exfat: use exfat_cluster_walk helper
exfat: remove NULL cache pointer case in exfat_ent_get
exfat: introduce exfat_chain_advance helper
exfat: use exfat_chain_advance helper
David Timber (2):
exfat: add fallocate FALLOC_FL_ALLOCATE_RANGE support
exfat: fix s_maxbytes
Philipp Hahn (2):
exfat: Drop dead assignment of num_clusters
exfat: Fix bitwise operation having different size
Yang Wen (2):
exfat: use truncate_inode_pages_final() at evict_inode()
exfat: fix passing zero to ERR_PTR() in exfat_mkdir()
fs/exfat/balloc.c | 18 ++----
fs/exfat/dir.c | 173 ++++++++++++++-------------------------------------
fs/exfat/exfat_fs.h | 57 +++++++++++++++--
fs/exfat/exfat_raw.h | 1 +
fs/exfat/fatent.c | 116 +++++++++++++++++++++++++---------
fs/exfat/file.c | 42 +++++++++++++
fs/exfat/inode.c | 19 ++----
fs/exfat/misc.c | 8 ++-
fs/exfat/namei.c | 38 ++++-------
fs/exfat/super.c | 11 +++-
10 files changed, 265 insertions(+), 218 deletions(-)