[GIT PULL] exfat update for 7.2-rc1

From: Namjae Jeon

Date: Thu Jun 18 2026 - 20:19:25 EST


Hi Linus,

This is exfat update pull request for v7.2-rc1. I add a description of
this pull request below. Please pull exfat with following ones.

Thanks!

The following changes since commit 0e0611827f3349d0a2ac121c023a6d3260dcecdb:

Merge tag 'pull-fixes' of
gitolite.kernel.org:pub/scm/linux/kernel/git/viro/vfs (2026-06-15
15:53:57 +0530)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat.git
tags/exfat-for-7.2-rc1

for you to fetch changes up to 3a1230e7b043c62737b05a3e9275ca83a43ad20a:

exfat: bound uniname advance in exfat_find_dir_entry() (2026-06-15
20:01:04 +0900)

----------------------------------------------------------------
Description for this pull request:
- Converts exfat buffered and direct I/O to the iomap infrastructure.
- Adds the supporting block mapping changes needed for that conversion,
including multi-cluster allocation, byte-based cluster mapping helpers.
- Supports SEEK_HOLE/SEEK_DATA and swapfile activation through iomap.
- Fix damaged upcase-table handling so a zero-sized table does not lead
to an infinite loop.
- Fix a potential use-after-free in exfat_find_dir_entry()
- Bound filename-entry advancement in exfat_find_dir_entry()
- Preserve benign secondary entries during rename and move
- Serialize truncate against in-flight direct I/O
- Simplify exfat_lookup().
- Replace unsafe arithmetic macros with static inline helpers.

----------------------------------------------------------------
Al Viro (1):
exfat: simplify exfat_lookup()

Bryam Vargas (1):
exfat: bound uniname advance in exfat_find_dir_entry()

David Timber (1):
exfat: fix handling of damaged volume in exfat_create_upcase_table()

Jan Polensky (1):
exfat: add swap_activate support

Michael Bommarito (1):
exfat: fix potential use-after-free in exfat_find_dir_entry()

Namjae Jeon (10):
exfat: replace unsafe macros with static inline functions
exfat: add balloc parameter to exfat_map_cluster() for iomap support
exfat: add exfat_file_open()
exfat: add support for multi-cluster allocation
exfat: add data_start_bytes and exfat_cluster_to_phys_bytes() helper
exfat: fix implicit declaration of brelse()
exfat: add iomap buffered I/O support
exfat: add iomap direct I/O support
exfat: add support for SEEK_HOLE and SEEK_DATA in llseek
exfat: serialize truncate against in-flight DIO

Rochan Avlur (1):
exfat: preserve benign secondary entries during rename and move

fs/exfat/Kconfig | 2 +-
fs/exfat/Makefile | 2 +-
fs/exfat/balloc.c | 2 +-
fs/exfat/dir.c | 117 +++++++++++------
fs/exfat/exfat_fs.h | 145 +++++++++++++++------
fs/exfat/fatent.c | 30 +++--
fs/exfat/file.c | 261 ++++++++++++++++++++++++++++---------
fs/exfat/inode.c | 364 ++++++++++------------------------------------------
fs/exfat/iomap.c | 271 ++++++++++++++++++++++++++++++++++++++
fs/exfat/iomap.h | 18 +++
fs/exfat/namei.c | 173 ++++++++++++++-----------
fs/exfat/nls.c | 19 ++-
fs/exfat/super.c | 5 +-
13 files changed, 878 insertions(+), 531 deletions(-)
create mode 100644 fs/exfat/iomap.c
create mode 100644 fs/exfat/iomap.h