]> git.baikalelectronics.ru Git - kernel.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>
Tue, 27 Apr 2021 11:45:07 +0000 (20:45 +0900)
commit4b691d667419741f30d8a11000d8439ff301e766
tree8eb871698cb312d75d7fb56ab582b7ddb133b102
parent7be381fd28a302d134a9c7440d391ae1b4000fd5
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