RE: [PATCH v2 0/1] exfat: reduce directory scans during file creation

From: Sungjong Seo

Date: Sun Jun 14 2026 - 05:41:51 EST


> Creating files in a large exfat directory may require repeated linear
> directory scans.
>
> After an empty-entry hint is used successfully, the remaining contiguous
> empty entries are not retained for the next create operation.
> This can cause subsequent operations to rediscover available directory
> space.
>
> In a test creating 20,000 files with random names and sizes between 1 KiB
> and 4 KiB in one directory, the elapsed time changed as follows:
>
> Before: 3879 seconds
> After: 3050 seconds
Hello, Yang Wen,

As Namjae reviewed, we intentionally drop the dentry in LOOKUP_CREATE to
maintain the case of newly created filenames. Therefore, when creating
a new file, a brute-force search of the entire directory is required,
and the hint value is naturally updated during this process.

For this reason, I believe this current patch will not improve performance
and is an unnecessary operation. Is there any performance gain with the
current patch, excluding the dropped part?

>
> ---
>
> Changes since v1:
> - Drop the LOOKUP_CREATE negative dentry change.
> - Make exfat_cache_next_empty_entry() return void and skip caching if
> exfat_chain_advance() fails.
>
> Yang Wen (1):
> exfat: preserve the next empty-entry hint after allocation
>
> fs/exfat/namei.c | 39 +++++++++++++++++++++++++++++++++++++--
> 1 file changed, 37 insertions(+), 2 deletions(-)
>
> --
> 2.34.1