linux-yocto/fs/ext4
Theodore Ts'o aa66603ddf ext4: introduce linear search for dentries
[ Upstream commit 9e28059d56 ]

This patch addresses an issue where some files in case-insensitive
directories become inaccessible due to changes in how the kernel
function, utf8_casefold(), generates case-folded strings from the
commit 5c26d2f1d3 ("unicode: Don't special case ignorable code
points").

There are good reasons why this change should be made; it's actually
quite stupid that Unicode seems to think that the characters ❤ and ❤️
should be casefolded.  Unfortimately because of the backwards
compatibility issue, this commit was reverted in 231825b2e1.

This problem is addressed by instituting a brute-force linear fallback
if a lookup fails on case-folded directory, which does result in a
performance hit when looking up files affected by the changing how
thekernel treats ignorable Uniode characters, or when attempting to
look up non-existent file names.  So this fallback can be disabled by
setting an encoding flag if in the future, the system administrator or
the manufacturer of a mobile handset or tablet can be sure that there
was no opportunity for a kernel to insert file names with incompatible
encodings.

Fixes: 5c26d2f1d3 ("unicode: Don't special case ignorable code points")
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Gabriel Krisman Bertazi <krisman@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-09-19 16:35:42 +02:00
..
.kunitconfig
acl.c
acl.h
balloc.c ext4: reorder capability check last 2025-05-29 11:02:15 +02:00
bitmap.c
block_validity.c ext4: make block validity check resistent to sb bh corruption 2025-05-02 07:59:25 +02:00
crypto.c
dir.c ext4: fix OOB read when checking dotdot dir 2025-04-10 14:39:39 +02:00
ext4_extents.h
ext4_jbd2.c
ext4_jbd2.h ext4: avoid journaling sb update on error if journal is destroying 2025-09-09 18:58:20 +02:00
ext4.h ext4: avoid journaling sb update on error if journal is destroying 2025-09-09 18:58:20 +02:00
extents_status.c
extents_status.h
extents.c ext4: correct the error handle in ext4_fallocate() 2025-08-01 09:48:46 +01:00
fast_commit.c
fast_commit.h
file.c ext4: factor out ext4_get_maxbytes() 2025-06-27 11:11:20 +01:00
fsmap.c ext4: fix reserved gdt blocks handling in fsmap 2025-08-28 16:30:56 +02:00
fsmap.h
fsync.c
hash.c
ialloc.c
indirect.c ext4: fix hole length calculation overflow in non-extent inodes 2025-08-28 16:30:56 +02:00
inline.c ext4: do not BUG when INLINE_DATA_FL lacks system.data xattr 2025-08-20 18:30:41 +02:00
inode-test.c
inode.c ext4: check fast symlink for ea_inode correctly 2025-08-28 16:30:55 +02:00
ioctl.c
Kconfig
Makefile
mballoc-test.c ext4: initialize superblock fields in the kballoc-test.c kunit tests 2025-08-20 18:30:52 +02:00
mballoc.c ext4: fix largest free orders lists corruption on mb_optimize_scan switch 2025-08-20 18:30:52 +02:00
mballoc.h
migrate.c
mmp.c
move_extent.c
namei.c ext4: introduce linear search for dentries 2025-09-19 16:35:42 +02:00
orphan.c ext4: use kmalloc_array() for array space allocation 2025-08-28 16:30:56 +02:00
page-io.c ext4: do not convert the unwritten extents if data writeback fails 2025-05-29 11:02:19 +02:00
readpage.c
resize.c
super.c ext4: avoid journaling sb update on error if journal is destroying 2025-09-09 18:58:20 +02:00
symlink.c
sysfs.c
truncate.h
verity.c
xattr_hurd.c
xattr_security.c
xattr_trusted.c
xattr_user.c
xattr.c ext4: ignore xattrs past end 2025-04-20 10:15:20 +02:00
xattr.h