[PATCH v3 0/6] exfat: unify FAT chain walking helpers

Chi Zhiling posted 6 patches 2 hours ago
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(-)
[PATCH v3 0/6] exfat: unify FAT chain walking helpers
Posted by Chi Zhiling 2 hours ago
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 v3:
- rework exfat_chain_advance
- add error handling in exfat_find_location
- misc tweaks

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
RE: [PATCH v3 0/6] exfat: unify FAT chain walking helpers
Posted by Sungjong Seo an hour ago
> 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