[RFC PATCH 0/7] Enable exfat_get_block to support obtaining multiple clusters

From: Chi Zhiling

Date: Tue Nov 18 2025 - 03:31:15 EST


From: Chi Zhiling <chizhiling@xxxxxxxxxx>

The purpose of this patchset is to prepare for adapting exfat to iomap
in the future. Currently, the main issue preventing exfat from supporting
iomap is its inability to fetch multiple contiguous clusters.

However, this patchset does not directly modify exfat_map_cluster and
exfat_get_cluster to support multi-clusters. Instead, after obtaining
the first cluster, it uses exfat_count_contig_clusters to retrieve the
subsequent contiguous clusters.

This approach is the one with the fewest changes among all the solutions
I have attempted, making the modifications easier to review.

This patchset includes two main changes: one reduces the number of sb_bread
calls when accessing adjacent clusters to save time, and the other enables
fetching multiple contiguous entries in exfat_get_blocks.

Chi Zhiling (7):
exfat: add cache option for __exfat_ent_get
exfat: support reuse buffer head for exfat_ent_get
exfat: reuse cache to improve exfat_get_cluster
exfat: improve exfat_count_num_clusters
exfat: improve exfat_find_last_cluster
exfat: introduce exfat_count_contig_clusters
exfat: get mutil-clusters in exfat_get_block

fs/exfat/cache.c | 11 ++++--
fs/exfat/exfat_fs.h | 6 ++-
fs/exfat/fatent.c | 90 ++++++++++++++++++++++++++++++++++++---------
fs/exfat/inode.c | 14 ++++++-
4 files changed, 97 insertions(+), 24 deletions(-)

--
2.43.0