From: Chi Zhiling <chizhiling@kylinos.cn>
This series introduces and uses two new helpers to simplify FAT chain
walking logic across the exfat driver:
1. exfat_fat_walk - walks FAT chain by a given step, handling both
ALLOC_NO_FAT_CHAIN and ALLOC_FAT_CHAIN modes
2. exfat_chain_advance - walks an exfat_chain structure by a given step,
updating both ->dir and ->size fields atomically with proper boundary
checking
These helpers replace open-coded cluster walking logic in dir.c, namei.c
and inode.c, improving code readability and ensuring consistent error
handling for corrupted FAT chains.
Also includes a fix for incorrect directory checksum when renaming a
file to a shorter name.
---
Changes in v2: rework exfat_chain_advance()
v1:https://lore.kernel.org/linux-fsdevel/20260331091113.20882-1-chizhiling@163.com/
Chi Zhiling (6):
exfat: fix incorrect directory checksum after rename to shorter name
exfat: introduce exfat_fat_walk helper
exfat: use exfat_fat_walk helper to simplify fat entry walking
exfat: remove NULL cache pointer case in exfat_ent_get
exfat: introduce exfat_chain_advance helper
exfat: use exfat_chain_advance helper
fs/exfat/dir.c | 111 +++++++++-----------------------------------
fs/exfat/exfat_fs.h | 40 +++++++++++++++-
fs/exfat/fatent.c | 23 ++++-----
fs/exfat/inode.c | 11 +----
fs/exfat/namei.c | 29 +++---------
5 files changed, 79 insertions(+), 135 deletions(-)
base-commit: 4129a3a2751cba8511cee5d13145223662a8e019
--
2.43.0