Kasama sa Linux kernel para sa Ext4 file system ang suporta para sa case-insensitive na operasyon

Ted Ts'o, may-akda ng ext2/ext3/ext4 file system, tinanggap sa Linux-susunod na sangay, sa batayan kung saan ang paglabas ng Linux 5.2 kernel ay mabubuo, isang set mga pagbabago, na nagpapatupad ng suporta para sa mga case-insensitive na operasyon sa Ext4 file system. Ang mga patch ay nagdaragdag din ng suporta para sa mga UTF-8 na character sa mga pangalan ng file.

Opsyonal na pinagana ang case-insensitive na operating mode kaugnay ng mga indibidwal na direktoryo gamit ang bagong attribute na β€œ+F” (EXT4_CASEFOLD_FL). Kapag ang katangiang ito ay nakatakda sa isang direktoryo, ang lahat ng mga operasyon na may mga file at subdirectory sa loob ay isasagawa nang hindi isinasaalang-alang ang kaso ng mga character, kabilang ang kaso ay hindi papansinin kapag naghahanap at nagbubukas ng mga file (halimbawa, ang mga file na Test.txt, test.txt at test.TXT sa naturang mga direktoryo ay ituturing na pareho). Bilang default, maliban sa mga direktoryo na may katangiang "+F", ang file system ay patuloy na case sensitive. Upang kontrolin ang pagsasama ng case-insensitive mode, isang binagong hanay ng mga utility ay inaalok e2fsprogs.

Ang mga patch ay inihanda ni Gabriel Krisman Bertazi, isang empleyado ng Collabora, at tinanggap kasama ng ikapitong mga pagtatangka pagkatapos tatlong taon pagbuo at pag-aalis ng mga komento. Ang pagpapatupad ay hindi gumagawa ng mga pagbabago sa format ng imbakan ng disk at gumagana lamang sa antas ng pagpapalit ng logic ng paghahambing ng pangalan sa ext4_lookup() function at pagpapalit ng hash sa dcache (Directory Name Lookup Cache) na istraktura. Ang halaga ng katangiang "+F" ay naka-imbak sa loob ng inode ng mga indibidwal na direktoryo at pinapalaganap sa lahat ng mga subfile at subdirectory. Ang impormasyon sa pag-encode ay naka-imbak sa superblock.

Upang maiwasan ang mga banggaan sa mga pangalan ng umiiral na mga file, ang katangiang "+F" ay maaari lamang itakda sa mga walang laman na direktoryo sa mga file system kung saan ang suporta ng Unicode sa mga pangalan ng file at direktoryo ay pinagana sa yugto ng pag-mount. Ang mga pangalan ng mga elemento ng direktoryo kung saan ang attribute na "+F" ay na-activate ay awtomatikong na-convert sa lower case at ipinapakita sa form na ito sa dcache, ngunit nai-save sa disk sa form na unang tinukoy ng user, i.e. Sa kabila ng pagproseso ng mga pangalan anuman ang kaso, ang mga pangalan ay ipinapakita at nai-save nang hindi nawawala ang impormasyon tungkol sa kaso ng mga character (ngunit hindi papayagan ka ng system na lumikha ng isang pangalan ng file na may parehong mga character, ngunit sa ibang kaso).

Pinagmulan: opennet.ru

Magdagdag ng komento