]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
exfat: limit log print for IO error
authorChi Zhiling <chizhiling@kylinos.cn>
Fri, 15 Aug 2025 09:32:45 +0000 (17:32 +0800)
committerNamjae Jeon <linkinjeon@kernel.org>
Tue, 30 Sep 2025 04:34:42 +0000 (13:34 +0900)
commit6dfba108387bf4e71411b3da90b2d5cce48ba054
tree12bcaaf9d84d0f5e484680de1ccd4327ad6f6198
parent30d4efb2f5a515a60fe6b0ca85362cbebea21e2f
exfat: limit log print for IO error

For exFAT filesystems with 4MB read_ahead_size, removing the storage device
when the read operation is in progress, which cause the last read syscall
spent 150s [1]. The main reason is that exFAT generates excessive log
messages [2].

After applying this patch, approximately 300,000 lines of log messages
were suppressed, and the delay of the last read() syscall was reduced
to about 4 seconds.

[1]:
write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 131072) = 131072 <0.000120>
read(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 131072) = 131072 <0.000032>
write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 131072) = 131072 <0.000119>
read(4, 0x7fccf28ae000, 131072)         = -1 EIO (Input/output error) <150.186215>

[2]:
[  333.696603] exFAT-fs (vdb): error, failed to access to FAT (entry 0x0000d780, err:-5)
[  333.697378] exFAT-fs (vdb): error, failed to access to FAT (entry 0x0000d780, err:-5)
[  333.698156] exFAT-fs (vdb): error, failed to access to FAT (entry 0x0000d780, err:-5)

Signed-off-by: Chi Zhiling <chizhiling@kylinos.cn>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
fs/exfat/fatent.c