ext4: introduce linear search for dentries
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 5c26d2f1 ("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 231825b2. 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: 5c26d2f1 ("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>
Loading
-
mentioned in commit fce2f929
-
mentioned in commit a3e132e5
-
mentioned in commit af8411db
-
mentioned in commit d2df0606
-
mentioned in commit d79885bd
-
mentioned in commit f1dd0b7b
-
mentioned in commit cf363a17
-
mentioned in commit 1bda8e1c
-
mentioned in commit 86c815fd
-
mentioned in commit 4b165371
-
mentioned in commit 0d62a618
-
mentioned in commit d32955d5
-
mentioned in commit 03b1e841
-
mentioned in commit 4f12a17f
-
mentioned in commit fd373821
Please sign in to comment