Ted Ts’o, az ext2/ext3/ext4 fájlrendszerek alkotója, a Linux-next ágban, amelyre a Linux 5.2 kernel kiadását alapozzák, a fájlrendszer Ext4-ben a kis- és nagybetű érzékeny műveletek támogatását megvalósító patch-eket készített.
A kis- és nagybetű érzéketlen működés opcionálisan a különböző könyvtárakban aktiválható egy új '+F' attribútum segítségével (EXT4_CASEFOLD_FL). Amikor ezt az attribútumot beállítják egy könyvtárra, akkor az abban lévő fájlokkal és almappákkal végzett összes művelet kis- és nagybetűtől függetlenül történik, beleértve a fájlok keresését és megnyitását is (például a Test.txt, test.txt és test.TXT fájlok az ilyen könyvtárakban azonosnak számítanak). Alapértelmezés szerint, a '+F' attribútummal nem rendelkező könyvtárakban a fájlrendszer továbbra is érzékeny a kis- és nagybetűkre. A kis- és nagybetű érzéketlen mód aktiválására egy módosított segédeszközkészletet javasolnak. .
A patch-eket Gabriel Krisman Bertazi, a Collabora munkatársa készítette, és próbálkozás után fejlesztés és észrevételek javítása után. A megvalósítás nem változtatja meg a tárolási adatformát és kizárólag az ext4_lookup() függvény név-összehasonlítási logikájának változtatása és a dcache (Directory Name Lookup Cache) struktúrában lévő hashnak a cseréjére terjed ki. A '+F' attribútum értéke a könyvtárak inode-jában tárolódik, és kihatással van az összes benne lévő fájlra és almappára. A kódolásra vonatkozó információ a szuperblokkban tárolódik.
A meglévő fájlnevekkel való ütközések elkerülése érdekében a '+F' attribútumot csak üres könyvtárakra lehet beállítani olyan fájlrendszerekben, ahol a beszerelési folyamat során az Unicode névtámogatás bekapcsolásra került. A '+F' attribútummal aktív könyvtárak elemeinek nevei automatikusan kisbetűsre konvertálódnak, és így tárolódnak a dcache-ben, ugyanakkor a lemezen az eredetileg megadott formájukban maradnak, ami azt jelenti, hogy a nagy- és kisbetűk független feldolgozása ellenére a nevek megjelenítése és tárolása nem veszít az információból a betűk esetéről (azonban a rendszer nem enged létrehozni olyan fájlnevet, amely ugyanazon karakterekből áll, de más betűkategóriában van).
Forrás: opennet.ru
