> 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 v3: > - rework exfat_chain_advance > - add error handling in exfat_find_location > - misc tweaks The patch-set looks good to me: Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com> Thanks. > > v1:https://lore.kernel.org/linux-fsdevel/20260331091113.20882-1- > chizhiling@163.com/ > v2:https://lore.kernel.org/linux-fsdevel/20260401071138.114836-1- > chizhiling@163.com/ > > > Chi Zhiling (6): > 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 > > fs/exfat/dir.c | 119 +++++++++++--------------------------------- > fs/exfat/exfat_fs.h | 44 +++++++++++++++- > fs/exfat/fatent.c | 23 ++++----- > fs/exfat/inode.c | 11 +--- > fs/exfat/namei.c | 28 +++-------- > 5 files changed, 91 insertions(+), 134 deletions(-) > > > base-commit: 4129a3a2751cba8511cee5d13145223662a8e019 > -- > 2.43.0
© 2016 - 2026 Red Hat, Inc.