Le noyau Linux pour FS Ext4 inclut la prise en charge des opérations insensibles à la casse

Ted Ts'o, auteur des systèmes de fichiers ext2/ext3/ext4, accepté le à la branche Linux-next qui formera la base de la version du noyau Linux 5.2, définissez changements, qui implémentent la prise en charge des opérations insensibles à la casse dans le système de fichiers Ext4. Les correctifs ajoutent également la prise en charge des caractères UTF-8 dans les noms de fichiers.

Le mode de fonctionnement insensible à la casse est éventuellement activé en relation avec des répertoires individuels à l'aide du nouvel attribut "+F" (EXT4_CASEFOLD_FL). Lorsque cet attribut est défini sur un répertoire, toutes les opérations avec des fichiers et des sous-répertoires à l'intérieur seront insensibles à la casse, y compris la casse sera ignorée lors de la recherche et de l'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, à l'exception des répertoires avec l'attribut "+F", le système de fichiers reste sensible à la casse. Pour contrôler l'inclusion du mode insensible à la casse, un ensemble modifié d'utilitaires est proposé e2fsprogs.

Patchs préparés par Gabriel Krisman Bertazi de Collabora et acceptés avec septième tentatives après trois ans développement et élimination des commentaires. L'implémentation ne modifie pas le format de stockage sur disque et fonctionne uniquement au niveau de la modification de la logique de comparaison de noms dans la fonction ext4_lookup() et du remplacement du hachage dans la structure dcache (Directory Name Lookup Cache). La valeur de l'attribut "+F" est stockée dans les inodes des répertoires individuels et se propage à tous les fichiers et sous-répertoires imbriqués. Les informations de codage sont stockées dans le super bloc.

Pour éviter les collisions avec les noms de fichiers existants, l'attribut "+F" ne peut être défini que sur des répertoires vides dans les systèmes de fichiers dont la prise en charge Unicode est activée dans les noms de fichiers et de répertoires pendant la phase de montage. Les noms des entrées de répertoire pour lesquelles l'attribut "+F" est activé sont automatiquement convertis en minuscules et reflétés sous cette forme dans dcache, mais sont stockés sur disque sous la forme initialement définie par l'utilisateur, c'est-à-dire malgré le traitement des noms quelle que soit la casse, les noms sont affichés et enregistrés sans perte d'informations sur la casse des caractères (mais le système ne vous permettra pas de créer un nom de fichier avec les mêmes caractères, mais dans une casse différente).

Source: opennet.ru

Ajouter un commentaire