OpenZFS 2.4.4 Adds Linux Kernel 7.2 Support, New MMP Recovery Tool

OpenZFS 2.4.4 is out with Linux 7.2 compatibility, a new zhack mmp reclaim command, DDT fixes, and numerous reliability improvements.

OpenZFS 2.4.4 has been released as the latest maintenance update to the open-source ZFS implementation, extending compatibility to Linux kernel 7.2 and introducing a new recovery option for pools affected by Multi-Modifier Protection issues.

With this release, the officially supported Linux kernel range is now 4.18 through 7.2. The update includes compatibility work for Linux 7.2, such as converting the ZFS superblock code to the kernel’s sget_fc() interface. OpenZFS 2.4.4 also continues to support FreeBSD, with the release notes listing FreeBSD 13.3 and later and 14.0 and later as supported platforms.

Another notable addition is a new zhack mmp reclaim command designed to recover a pool left stranded by Multi-Modifier Protection. MMP is OpenZFS’s safeguard against the same storage pool being imported and modified simultaneously by multiple systems, which could otherwise result in corruption.

The MMP changes allow OpenZFS to better distinguish between a failed uberblock claim and genuine activity from another host. The implementation also skips non-writable virtual devices during activity checks and improves handling of degraded mirrors with some legs marked as absent.

Moreover, OpenZFS 2.4.4 makes the systemd-udev-settle dependency optional for systemd pool import units, removing the unconditional wait for udev to finish processing devices before an import unit can proceed.

On the bug-fixes front, several issues affecting the Deduplication Table have been addressed, including negative time overflows during DDT pruning, multiple pruning bugs, insufficient locking during dedup verification, and incorrect reference-count tagging in the DDT log.

L2ARC users get a fix that bounds rebuilding by the write hand during the first sweep. Elsewhere, OpenZFS fixes reads involving blocks freed after being cloned and rate-limits Direct I/O verification events to prevent excessive event generation.

On Linux, the release resolves an infinite loop in zfs_write() that could occur when operating on an unfaultable buffer. It also fixes reads through mmap() beyond the end of a file and updates modification and change timestamps correctly when fallocate() grows a file.

Pool management receives several corrections. zpool export now returns EBUSY when zvol minor devices belonging to the pool are still in use, instead of proceeding when the pool cannot be cleanly exported. A race between device-removal completion and pool export has also been fixed.

Additionally, OpenZFS 2.4.4 also addresses receiving split large blocks with a short trailing chunk, corrects behavior related to zfs receive -x, and eliminates a potential null-pointer dereference in the DMU receive code. The release also fixes a stale POSIX ACL cache that could remain after a rollback.

For delegated administration, OpenZFS introduces a new send:encrypted permission, providing finer-grained control over whether delegated users are permitted to send encrypted datasets.

Other changes include improvements to device permission checking, safer string and memory handling in libzfs, fixes for resumed sends, improvements to automatic pool expansion when partitioned disks change capacity, and a number of build, CI, test-suite, and FreeBSD-related updates.

For additional details, see the changelog.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *