De Linux kernel foar FS Ext4 omfettet stipe foar saak-ûngefoelige operaasje

Ted Ts'o, skriuwer fan de ext2/ext3/ext4-bestânsystemen, akseptearre nei de Linux-folgjende branch dy't de basis sil foarmje fan 'e Linux 5.2 kernel release, set feroarings, dy't stipe ymplementearje foar saak-ûngefoelige operaasjes yn it Ext4-bestânsysteem. De patches foegje ek stipe ta foar UTF-8-tekens yn bestânsnammen.

De saak-ûngefoelige operaasjemodus is opsjoneel ynskeakele yn relaasje ta yndividuele mappen mei it nije attribút "+F" (EXT4_CASEFOLD_FL). As dit attribút is ynsteld op in map, sille alle operaasjes mei triemmen en submappen binnen wêze hoofdlettergefoelich, ynklusyf gefal sil wurde negearre by it sykjen en iepenjen fan triemmen (bygelyks Test.txt, test.txt en test.TXT triemmen yn sa'n mappen sille itselde wurde beskôge). Standert, mei útsûndering fan mappen mei it "+F" attribút, bliuwt it bestânsysteem haadlettergefoelich. Om it opnimmen fan gefal-ûngefoelige modus te kontrolearjen, wurdt in wizige set nutsbedriuwen oanbean e2fprogs.

Patches taret troch Gabriel Krisman Bertazi fan Collabora en akseptearre mei sânde besykjen na trije jier ûntwikkeling en eliminaasje fan opmerkings. De ymplemintaasje feroaret net de skiif opslach formaat en wurket allinnich op it nivo fan in feroaring fan de namme ferliking logika yn de ext4_lookup () funksje en it ferfangen fan de hash yn de dcache (Directory Name Lookup Cache) struktuer. De wearde fan it attribút "+F" wurdt opslein binnen de ynoden fan yndividuele mappen en propagearret nei alle nestele bestannen en submappen. Kodearringynformaasje wurdt opslein yn it superblok.

Om botsingen mei de nammen fan besteande triemmen te foarkommen, kin it "+F" attribút allinich ynsteld wurde op lege mappen yn bestânssystemen dy't Unicode-stipe ynskeakele hawwe yn triem- en mapnammen yn 'e berchfaze. De nammen fan triemtafel-yngongen wêrfoar it "+F"-attribút ynskeakele is, wurde automatysk omset yn lytse letters en yn dizze foarm yn dcache reflektearre, mar wurde opslein op skiif yn 'e foarm dy't earst troch de brûker ynsteld is, d.w.s. nettsjinsteande de ferwurking fan nammen nettsjinsteande it gefal, de nammen wurde werjûn en bewarre sûnder ynformaasje oer it gefal fan karakters te ferliezen (mar it systeem sil jo net tastean om in triemnamme te meitsjen mei deselde tekens, mar yn in oar gefal).

Boarne: opennet.ru

Add a comment