Ext4 파일 시스템용 Linux 커널에는 대소문자를 구분하지 않는 작업 지원이 포함되어 있습니다.

Тед Цо (Ted Ts’o), автор файловых систем ext2/ext3/ext4, 받아 들였다. в ветку Linux-next, на основе которой будет сформирован выпуск ядра Linux 5.2, набор 변경, реализующих поддержку регистронезависимых операций в файловой системе Ext4. Патчи также добавляют поддержку символов UTF-8 в именах файлов.

Режим работы без различия регистра символов опционально включается в привязке к отдельным каталогам при помощи нового атрибута «+F» (EXT4_CASEFOLD_FL). При установке данного атрибута на каталог все операции с файлами и подкаталогами внутри будут производиться без учёта регистра символов, в том числе регистр будет игнорироваться при операциях поиска и открытия файлов (например, файлы Test.txt, test.txt и test.TXT в подобных каталогах будут считаться одинаковыми). По умолчанию, за исключением каталогов с атрибутом «+F» , ФС продолжает быть регистрозависимой. Для управления включением регистронезависимого режима предлагается модифицированный набор утилит e2fsprogs.

Патчи подготовлены Gabriel Krisman Bertazi, сотрудником компании Collabora, и приняты с 일곱 번째 попытки после 삼 년 разработки и устранения замечаний. Реализация не вносит изменения в дисковый формат хранения и работает исключительно на уровне изменения логики сравнения имён в функции ext4_lookup() и замене хэша в структуре dcache (Directory Name Lookup Cache). Значение атрибута «+F» сохраняется внутри inode отдельных каталогов и распространяется на все вложенные файлы и подкаталоги. Информация о кодировке сохраняется в суперблоке.

Для того чтобы избежать коллизий с именами существующих файлов атрибут «+F» может быть установлен только на пустые каталоги в файловых системах, в которых на этапе монтирования включён режим поддержки Unicode в именах файлов и каталогов. Имена элементов каталогов для которых активирован атрибут «+F» автоматически переводятся в нижний регистр и отражаются в таком виде в dcache, но на диске сохраняются в изначально заданном пользователем виде, т.е. несмотря на обработку имён независимо от регистра, имена показываются и сохраняются без потери информации о регистре символов (но система не даст создать имя файла с теми же символами, но в другом регистре).

출처 : opennet.ru

코멘트를 추가