]> www.infradead.org Git - users/jedix/linux-maple.git/commit
exfat: speed up iterate/lookup by fixing start point of traversing cluster chain
authorHyeongseok Kim <hyeongseok@gmail.com>
Mon, 22 Mar 2021 03:53:36 +0000 (12:53 +0900)
committerNamjae Jeon <namjae.jeon@samsung.com>
Thu, 25 Mar 2021 00:08:33 +0000 (09:08 +0900)
commitf9b23f1f6ca05790a50ee965223a5cfafec24980
tree89fbcd789343b80009e1c6109ebf1a63accff358
parentcbf7910f030fb8ea94f81fc723c011efc2e50b3b
exfat: speed up iterate/lookup by fixing start point of traversing cluster chain

When directory iterate and lookup is called, there's a buggy rewinding
of start point for traversing cluster chain to the parent directory
entry's first cluster. This caused repeated cluster chain traversing
from the first entry of the parent directory that would show worse
performance if huge amounts of files exist under the parent directory.
Fix not to rewind, make continue from currently referenced cluster and
dir entry.

Tested with 50,000 files under single directory / 256GB sdcard,
with command "time ls -l > /dev/null",
Before :     0m08.69s real     0m00.27s user     0m05.91s system
After  :     0m07.01s real     0m00.25s user     0m04.34s system

Signed-off-by: Hyeongseok Kim <hyeongseok@gmail.com>
Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
fs/exfat/dir.c
fs/exfat/exfat_fs.h
fs/exfat/namei.c