У ядро ​​Linux для ФС Ext4 включена підтримка роботи без урахування регістру символів

Тед Цо (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

Додати коментар або відгук