El kernel de Linux para FS Ext4 incluye soporte para operaciones que no distinguen entre mayúsculas y minúsculas

Ted Ts'o, autor de los sistemas de archivos ext2/ext3/ext4, donado a la siguiente rama de Linux que formará la base de la versión del kernel de Linux 5.2, configure cambios, que implementan soporte para operaciones que no distinguen entre mayúsculas y minúsculas en el sistema de archivos Ext4. Los parches también agregan soporte para caracteres UTF-8 en los nombres de archivo.

El modo de operación que no distingue entre mayúsculas y minúsculas se habilita opcionalmente en relación con directorios individuales utilizando el nuevo atributo "+F" (EXT4_CASEFOLD_FL). Cuando este atributo se establece en un directorio, todas las operaciones con archivos y subdirectorios dentro no distinguirán entre mayúsculas y minúsculas, incluidas las mayúsculas y minúsculas que se ignorarán al buscar y abrir archivos (por ejemplo, archivos Test.txt, test.txt y test.TXT en tales directorios se considerarán iguales). De forma predeterminada, con la excepción de los directorios con el atributo "+F", el sistema de archivos continúa distinguiendo entre mayúsculas y minúsculas. Para controlar la inclusión del modo que no distingue entre mayúsculas y minúsculas, se ofrece un conjunto modificado de utilidades e2fsprogs.

Parches preparados por Gabriel Krisman Bertazi de Collabora y aceptados con séptimo intentos después tres años elaboración y eliminación de comentarios. La implementación no cambia el formato de almacenamiento en disco y funciona únicamente a nivel de cambiar la lógica de comparación de nombres en la función ext4_lookup() y reemplazar el hash en la estructura dcache (Directory Name Lookup Cache). El valor del atributo "+F" se almacena dentro de los inodos de directorios individuales y se propaga a todos los archivos y subdirectorios anidados. La información de codificación se almacena en el superbloque.

Para evitar colisiones con los nombres de los archivos existentes, el atributo "+F" solo se puede establecer en directorios vacíos en sistemas de archivos que tengan habilitado el soporte Unicode en nombres de archivos y directorios durante la fase de montaje. Los nombres de las entradas de directorio para las que está habilitado el atributo "+F" se convierten automáticamente a minúsculas y se reflejan en esta forma en dcache, pero se almacenan en el disco en la forma establecida inicialmente por el usuario, es decir a pesar del procesamiento de nombres sin importar el caso, los nombres se muestran y guardan sin perder información sobre el caso de los caracteres (pero el sistema no le permitirá crear un nombre de archivo con los mismos caracteres, pero en un caso diferente).

Fuente: opennet.ru

Añadir un comentario