Megjelent az OpenZFS 2.4.4, a nyílt forráskódú ZFS megvalósítás legújabb karbantartási kiadása. Bővítették a kompatibilitást a Linux kernel 7.2-vel, és új helyreállítási lehetőséget vezettek be a Multi-Modifier Protection problémáival érintett poolokhoz.
Ezzel a kiadással a hivatalosan támogatott Linux kernel verziók köre 4.18 és 7.2 közé bővült. A frissítés tartalmazza a Linux 7.2-vel kapcsolatos kompatibilitási munkát, például a ZFS superblock kód átállítását a kernel sget_fc() interfészére. Az OpenZFS 2.4.4 továbbra is támogatja a FreeBSD-t; a kiadási megjegyzések szerint a támogatott platformok a FreeBSD 13.3-tól felfelé és a 14.0-tól felfelé.
Fontos újdonság az új zhack mmp reclaim parancs, amelyet olyan poolok helyreállítására terveztek, amelyek Multi-Modifier Protection miatt „ragadtak be”. Az MMP az OpenZFS védelmi mechanizmusa, amely megakadályozza, hogy ugyanazt a storage poolt egyszerre több rendszer importálja és módosítsa, mert ez adatkárosodáshoz vezethetne.
Az MMP-vel kapcsolatos módosítások lehetővé teszik, hogy az OpenZFS jobban megkülönböztesse a sikertelen uberblock-igényt egy másik gépről érkező valódi aktivitástól. A megvalósítás mostantól kihagyja az írásvédett virtuális eszközöket az aktivitás-ellenőrzés során, és javítja a degradált tükrök kezelését, ha egyes ágakat hiányzónak jelöltek.
Az OpenZFS 2.4.4 ezen felül opcionálissá teszi a systemd-udev-settle függőséget a systemd pool import unitoknál, így kikerül az az eddigi kötelező várakozás, amíg az udev befejezi az eszközök feldolgozását, mielőtt az import unit folytatódhatna.
A hibajavítások között több, a Deduplication Table-t érintő problémát is orvosoltak. Ilyen például a negatív időtúlfutás DDT pruning közben, több különféle pruning hiba, az elégtelen zárolás a deduplikációs ellenőrzés során, valamint a hibás referencia-számláló címkézés a DDT naplóban.
Az L2ARC-ot használók egy olyan javítást kapnak, amely az első pásztázás során a write hand alapján korlátozza az újraépítést. Emellett az OpenZFS javítja azokat az olvasásokat, amelyek olyan blokkokat érintenek, amelyeket klónozás után szabadítottak fel, és korlátozza a Direct I/O ellenőrzési események ütemét, hogy ne keletkezzen túl sok esemény.
Linuxon a kiadás megold egy végtelen ciklust a zfs_write() függvényben, amely akkor fordulhatott elő, ha nem lapozható bufferrel dolgozott. Javítja továbbá az mmap()-on keresztüli olvasásokat a fájl vége után, és helyesen frissíti a módosítási és változási időbélyegeket, amikor a fallocate() megnöveli egy fájl méretét.
A poolkezelés több pontosítást kapott. A zpool export mostantól EBUSY hibakóddal tér vissza, ha a poolhoz tartozó zvol minor eszközök még használatban vannak, ahelyett, hogy továbbmenne akkor is, ha a poolt nem lehet tisztán exportálni. Kijavítottak egy versenyhelyzetet is az eszköz-eltávolítás befejezése és a pool export között.
Az OpenZFS 2.4.4 ezen felül kezeli a szétvágott nagy blokkok fogadását rövid záró darabbal, korrigálja a zfs receive -x kapcsolóval kapcsolatos viselkedést, és megszüntet egy lehetséges null pointer dereferálást a DMU receive kódban. A kiadás javít egy olyan problémát is, amikor egy rollback után elavult POSIX ACL cache maradhatott hátra.
A delegált adminisztrációhoz az OpenZFS egy új send:encrypted jogosultságot vezet be, amely finomhangolhatóbb ellenőrzést ad arra, hogy a delegált felhasználók küldhetnek‑e titkosított dataseteket.
További változás a blokkeszközök jogosultság‑ellenőrzésének pontosítása, a biztonságosabb sztring‑ és memóriakezelés a libzfs-ben, a folytatott küldésekhez kapcsolódó javítások, a partícionált lemezek kapacitásváltozásakor automatikusan bővülő poolek működésének fejlesztése, valamint számos build-, CI-, tesztcsomag- és FreeBSD-vel kapcsolatos frissítés.
További részletekért nézd meg a változásnaplót.

