Тед Цо (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», файловата система остава регистрозависима. За управление на включването на режима без разграничаване на регистъра се предлага модифициран набор от утилити .
Патчовете са подготвени от Gabriel Krisman Bertazi, служител на компанията Collabora, и са приети след опит след разработка и отстраняване на забележки. Реализацията не внася промени в дисковия формат на съхранение и работи единствено на ниво изменение на логиката на сравнение на имената в функцията ext4_lookup() и замяна на хеша в структурата dcache (Cache за търсене на имена на директории). Стойността на атрибута «+F» се запазва в inode на отделните папки и се разпространява на всички вложени файлове и подкаталози. Информацията за кодировката се съхранява в суперблока.
За да се избегнат конфликти с имената на съществуващите файлове, атрибутът «+F» може да бъде зададен само за празни папки в файловите системи, в които по време на монтиране е активиран режимът на поддръжка на Unicode в имената на файловете и папките. Имената на елементите в папките, за които е активиран атрибутът «+F», автоматично се превеждат в малки букви и се отразяват в такъв вид в dcache, но на диска се запазват в първоначално зададения от потребителя вид, т.е. въпреки обработката на имената, независимо от регистъра, имената се показват и запазват без загуба на информация за регистъра на символите (но системата няма да позволи създаването на име на файл със същите символи, но в различен регистър).
Източник: opennet.ru
