Re: [PATCH v2 0/6] exfat: improve performance of NO_FAT_CHAIN to FAT_CHAIN conversion
From: Namjae Jeon
Date: Thu Mar 05 2026 - 07:18:01 EST
On Tue, Mar 3, 2026 at 12:15 PM Chi Zhiling <chizhiling@xxxxxxx> wrote:
>
> From: Chi Zhiling <chizhiling@xxxxxxxxxx>
>
> This series improves the performance when converting files from NO_FAT_CHAIN
> to FAT_CHAIN format (which happens when a file cannot allocate contiguous
> clusters). It also adds proper error handling for FAT table write operations.
>
> - Patch 1: Add block readahead for FAT blocks during conversion
> - Patch 2-3: Refactor existing readahead code to use the new helper
> - Patch 4: Remove redundant sec parameter from exfat_mirror_bh
> - Patch 5: Cache buffer heads to reduce mark_buffer_dirty overhead
> - Patch 6: Fix error handling to propagate FAT write errors to callers
>
> Performance improvements for converting a 30GB file:
>
> | Cluster Size | Before | After | Speedup |
> |--------------|--------|--------|---------|
> | 512 bytes | 47.667s| 1.866s | 25.5x |
> | 4KB | 6.436s | 0.236s | 27.3x |
> | 32KB | 0.758s | 0.034s | 22.3x |
> | 256KB | 0.117s | 0.006s | 19.5x |
>
> v1: https://lore.kernel.org/all/20260204071435.602246-1-chizhiling@xxxxxxx/
>
> Chi Zhiling (6):
> exfat: add block readahead in exfat_chain_cont_cluster
> exfat: use readahead helper in exfat_allocate_bitmap
> exfat: use readahead helper in exfat_get_dentry
> exfat: drop redundant sec parameter from exfat_mirror_bh
> exfat: optimize exfat_chain_cont_cluster with cached buffer heads
> exfat: fix error handling for FAT table operations
Applied them to #dev.
Thanks!