Ted Ts’o, autor dos sistemas de arquivos ext2/ext3/ext4, na branch Linux-next, da qual será formado o lançamento do kernel Linux 5.2, um conjunto , implementando o suporte a operações que não diferenciam maiúsculas de minúsculas no sistema de arquivos Ext4. Os patches também adicionam suporte a caracteres UTF-8 nos nomes dos arquivos.
O modo de operação sem diferenciação entre maiúsculas e minúsculas é opcionalmente ativado na vinculação a diretórios específicos usando o novo atributo «+F» (EXT4_CASEFOLD_FL). Ao definir este atributo em um diretório, todas as operações com arquivos e subdiretórios dentro serão realizadas sem considerar a diferença entre maiúsculas e minúsculas, incluindo que a capitalização será ignorada durante operações de busca e abertura de arquivos (por exemplo, os arquivos Test.txt, test.txt e test.TXT em diretórios semelhantes serão considerados iguais). Por padrão, exceto para diretórios com o atributo «+F», o sistema de arquivos continua a ser sensível a maiúsculas e minúsculas. Para gerenciar a ativação do modo sem diferenciação de maiúsculas e minúsculas, um conjunto modificado de utilitários é proposto. .
Os patches foram preparados por Gabriel Krisman Bertazi, funcionário da Collabora, e aceitos após tentativa após de desenvolvimento e correção de comentários. A implementação não altera o formato de armazenamento no disco e funciona exclusivamente no nível da alteração da lógica de comparação de nomes na função ext4_lookup() e da substituição do hash na estrutura dcache (Cache de Pesquisa de Nomes de Direatórios). O valor do atributo «+F» é armazenado dentro do inode de diretórios individuais e se aplica a todos os arquivos e subdiretórios contidos. As informações sobre a codificação são salvas no superbloco.
Para evitar colisões com nomes de arquivos existentes, o atributo «+F» só pode ser definido em diretórios vazios nos sistemas de arquivos em que o modo de suporte a Unicode em nomes de arquivos e diretórios está ativado no momento da montagem. Os nomes dos elementos de diretório para os quais o atributo «+F» está ativado são automaticamente convertidos para minúsculas e refletidos dessa forma no dcache, mas são mantidos no disco na forma originalmente definida pelo usuário, ou seja, apesar de os nomes serem processados independentemente de maiúsculas e minúsculas, os nomes são exibidos e salvos sem perder a informação sobre a capitalização (mas o sistema não permitirá criar um nome de arquivo com os mesmos caracteres, mas com uma capitalização diferente).
Fonte: opennet.ru
