Ted Ts’o, auteur des systèmes de fichiers ext2/ext3/ext4, dans la branche Linux-next, à partir de laquelle sera créé le lancement du noyau Linux 5.2, un ensemble , mettant en œuvre le support des opérations non sensibles à la casse dans le système de fichiers Ext4. Les patches ajoutent également le support des caractères UTF-8 dans les noms de fichiers.
Le mode de fonctionnement sans distinction de casse peut être activé de manière optionnelle pour des répertoires spécifiques en utilisant un nouvel attribut «+F» (EXT4_CASEFOLD_FL). Lorsque cet attribut est appliqué à un répertoire, toutes les opérations sur les fichiers et sous-répertoires à l'intérieur seront effectuées sans tenir compte de la casse, y compris la casse sera ignorée lors des opérations de recherche et d'ouverture de fichiers (par exemple, les fichiers Test.txt, test.txt et test.TXT dans de tels répertoires seront considérés comme identiques). Par défaut, sauf pour les répertoires avec l'attribut «+F», le système de fichiers reste sensible à la casse. Un ensemble modifié d'outils est proposé pour gérer l'activation du mode insensible à la casse. .
Les patches ont été préparés par Gabriel Krisman Bertazi, employé de Collabora, et acceptés après tentative après de développement et de corrections. La mise en œuvre n'apporte pas de modifications au format de disque et fonctionne uniquement au niveau de la logique de comparaison des noms dans la fonction ext4_lookup() et du remplacement du hachage dans la structure dcache (Cache de recherche de noms de répertoire). La valeur de l'attribut «+F» est conservée à l'intérieur de l'inode de répertoires spécifiques et s'applique à tous les fichiers et sous-répertoires imbriqués. Les informations sur l'encodage sont stockées dans le superblock.
Pour éviter les collisions avec les noms de fichiers existants, l'attribut «+F» ne peut être appliqué qu'aux répertoires vides dans les systèmes de fichiers où le mode de prise en charge de l'Unicode dans les noms de fichiers et de répertoires est activé lors du montage. Les noms des éléments de répertoire pour lesquels l'attribut «+F» est activé sont automatiquement traduits en minuscules et reflétés sous cette forme dans dcache, mais sont conservés sur le disque dans la manière initialement spécifiée par l'utilisateur, c'est-à-dire que malgré le traitement des noms sans tenir compte de la casse, les noms sont affichés et sauvegardés sans perte d'information sur la casse (mais le système ne permettra pas de créer un nom de fichier avec les mêmes caractères, mais dans une autre casse).
Source : opennet.ru
