Ted Ts’o, autor al sistemelor de fișiere ext2/ext3/ext4, în ramura Linux-next, pe baza căreia va fi formată versiunea kernelului Linux 5.2, un set , implementând suport pentru operații fără distincția dintre litere în sistemul de fișiere Ext4. Patch-urile adaugă, de asemenea, suport pentru caracterele UTF-8 în numele fișierelor.
Modul de funcționare fără distincția dintre litere poate fi activat opțional pentru anumite directoare prin intermediul unui nou atribut „+F” (EXT4_CASEFOLD_FL). Atunci când acest atribut este setat pe un director, toate operațiile cu fișierele și subdirectoarele din interior se vor desfășura fără a ține cont de distincția dintre litere, inclusiv în căutarea și deschiderea fișierelor (de exemplu, fișierele Test.txt, test.txt și test.TXT în astfel de directoare vor fi considerate identice). În mod implicit, cu excepția directoarelor cu atributul „+F”, sistemul de fișiere continuă să fie sensibil la case. Pentru a gestiona activarea modului fără distincția dintre litere, se oferă un set modificat de utilitare. .
Patch-urile au fost pregătite de Gabriel Krisman Bertazi, angajat al companiei Collabora, și au fost acceptate după încercare, după de dezvoltare și corectare a observațiilor. Implementarea nu aduce modificări în formatul de stocare pe disc și funcționează exclusiv la nivelul modificării logicii de comparare a numelui în funcția ext4_lookup() și înlocuirea hash-ului în structura dcache (Directory Name Lookup Cache). Valoarea atributului „+F” este păstrată în interiorul inode-urilor directoarelor individuale și se aplică tuturor fișierelor și subdirectoarelor interne. Informațiile despre codificare sunt păstrate în superbloc.
Pentru a evita coliziunile cu numele fișierelor existente, atributul „+F” poate fi setat doar pe directoare goale în sistemele de fișiere în care, în timpul montării, a fost activat modul de suport Unicode pentru numele fișierelor și directoarelor. Numele elementelor directoarelor pentru care atributul „+F” este activat sunt automat convertite în litere mici și reflectate astfel în dcache, dar pe disc sunt păstrate în forma inițială stabilită de utilizator, adică, în ciuda procesării numelui fără a ține cont de case, numele sunt afișate și salvate fără pierderea informațiilor despre cazul literelor (dar sistemul nu va permite crearea unui nume de fișier cu aceleași caractere, dar cu o altă distincție de case).
Sursa: opennet.ro
