]> 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)
commitcac4a39c7a421c0c0d7afa8e2e380f01edbc9a54
tree8eb871698cb312d75d7fb56ab582b7ddb133b102
parent482d0f2d276dc896b87404de6bac1f6a35388d21
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