Kernel Tree For Xiaomi 11 Lite NE 5G
Go to file
Hyeongseok Kim f693dd9e55 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>
2021-03-25 08:11:12 +09:00
.travis_cmd_wrapper.pl exfat: add travis-CI build and test support 2020-02-03 22:43:47 +09:00
.travis_get_mainline_kernel exfat: add travis-CI build and test support 2020-02-03 22:43:47 +09:00
.travis.yml exfat: add FITRIM ioctl tests 2021-03-25 08:10:44 +09:00
balloc.c exfat: improve write performance when dirsync enabled 2021-03-25 08:10:51 +09:00
cache.c exfat: fix use of uninitialized spinlock on error path 2020-10-12 22:56:52 +09:00
dir.c exfat: speed up iterate/lookup by fixing start point of traversing cluster chain 2021-03-25 08:11:12 +09:00
exfat_fs.h exfat: speed up iterate/lookup by fixing start point of traversing cluster chain 2021-03-25 08:11:12 +09:00
exfat_raw.h exfat: fix shift-out-of-bounds in exfat_fill_super() 2021-02-01 10:35:05 +09:00
fatent.c exfat: improve write performance when dirsync enabled 2021-03-25 08:10:51 +09:00
file.c exfat: block: use an on-stack bio in blkdev_issue_flush 2021-03-25 08:11:06 +09:00
inode.c exfat: improve write performance when dirsync enabled 2021-03-25 08:10:51 +09:00
Kconfig exfat: initial commit 2020-02-03 21:47:19 +09:00
Makefile exfat: linux 4.16 kernel build support 2020-02-04 09:18:10 +09:00
misc.c exfat: Fix date for year < 1980 and > 2108 2021-03-25 08:10:47 +09:00
namei.c exfat: speed up iterate/lookup by fixing start point of traversing cluster chain 2021-03-25 08:11:12 +09:00
nls.c exfat: Avoid allocating upcase table using kcalloc() 2020-12-08 12:51:04 +09:00
README.md exfat: fix typo 2020-02-10 21:35:58 +09:00
super.c exfat: introduce bitmap_lock for cluster bitmap access 2021-03-25 08:10:12 +09:00

exFAT filesystem

This is the exfat filesystem for support from the linux 4.1 kernel to the latest kernel.

Installing as a stand-alone module

Install prerequisite package for Fedora, RHEL:

	yum install kernel-devel-$(uname -r)

Build step:

	make
	sudo make install

To load the driver manually, run this as root:

	modprobe exfat

Installing as a part of the kernel

  1. Let's take [linux] as the path to your kernel source dir.
	cd [linux]
	cp -ar exfat [linux]/fs/
  1. edit [linux]/fs/Kconfig
	source "fs/fat/Kconfig"
	+source "fs/exfat/Kconfig"
	source "fs/ntfs/Kconfig"
  1. edit [linux]/fs/Makefile
	obj-$(CONFIG_FAT_FS)          += fat/
	+obj-$(CONFIG_EXFAT_FS)       += exfat/
	obj-$(CONFIG_BFS_FS)          += bfs/
  1. make menuconfig and set exfat
	File systems  --->
		DOS/FAT/NT Filesystems  --->
			<M> exFAT filesystem support
			(utf8) Default iocharset for exFAT

build your kernel