Skip to content

Changelog

Jorgen Lundman edited this page Apr 19, 2026 · 1 revision

Changelog

OpenZFS on OS X 2.2.2 — 2023-12-05

  • File corruption fix
  • RAIDZ expansion support
  • File/block cloning fixes
  • Do not install .in files
  • Remove patch from Monterey arm64
  • Do not use sprintf

OpenZFS on OS X 2.2.0 — 2023-11-16

  • Block cloning
  • Scrub error log
  • Corrective zfs receive
  • Fully adaptive ARC
  • Better arm64 (M1+) support

OpenZFS on OS X 2.1.6 — 2022-12-01

  • NFS fixes
  • New tunables system, parity with upstream
  • Persistent L2ARC fixes
  • Update lz4
  • Update zstd
  • Cross-platform xattr namespace
  • Log xattrs to ZIL
  • Add blake3 checksum
  • Sorted scrub optimizations
  • B-tree optimizations
  • Per-dataset ZIL stats
  • Better M1/ARM64 support

OpenZFS on OS X 2.1.0 — 2021-08-21

  • Add missing zsysctl
  • Add missing mount_zfs
  • Attempt to reduce scrub stack usage (panic with dsl_scan_visitbp)
  • taskq_cancel_id() fixes (vdev_deadman, spa_update panic)
  • purgevfs deadlock fix
  • Xattr re-implementation from Linux, affecting moves between "on" and "sa"
  • Handle zpool-in-zvol deadlock
  • kextunload block/leak fix
  • Long filename panic fix
  • Many fixes with automount snapshots
  • Dirlink count updated to match upstream
  • Fix libcurl.4.dylib use for encryption file location
  • Fix linkid lookup for Finder
  • Send/receive fixes
  • Auto-import fix
  • zfs_resume_fs fix (zfs recv -F)
  • zvol_replay panic fix
  • zvol rename could sometimes be left busy
  • Split stacks: detect low stack space and work around it
  • Sub-PAGESIZE ABD work and performance improvements
  • zvol I/O could overflow the stack on M1
  • Encrypted zvol clones did not get /dev/diskX
  • zfs_replay could panic with NULL kcred
  • Update undo of decmpfs

OpenZFS on OS X 2.0.1 — 2021-05-27

  • New port
  • zfs send / zfs recv rewritten to use pipes
  • Mimic changes: use com.apple.mimic=hfs instead of on/off
  • Automatic mounting of snapshots
  • zstd compression
  • User/group object quotas
  • device_rebuild
  • draid vdev type

OpenZFS on OS X 1.9.4 — 2020-02-29

  • Reserved inode numbers avoided (Catalina, Spotlight might need reindexing)
  • Dedup fixes
  • vnode_renamex feature (Catalina)
  • .zfs/snapshot work for Finder

OpenZFS on OS X 1.9.3 — 2019-10-30

  • Catalina fixes (decmpfs corrections)
  • Disable use of volume icons
  • ZFS Boot fixes

OpenZFS on OS X 1.9.2 — 2019-08-01

  • Skip AVX512 vectorized functions (panic on modern CPUs)
  • Include Mavericks.pkg
  • zfs rename could cause core dumps / aborts

1.9.1 notes

  • zfs commands lost error messages
  • zfs raw recv fix
  • zfs spill block receive fix
  • ZoL vectorized RAIDZ / assembler for fletcher/AES port
  • zfs send deadlock in bqueue

Notes:

  • Notarization can sometimes give installation error kextcache code=71. The reason is unknown, but the install completes successfully.
  • Starting from 10.13, clicking the Allow button to load the kext cannot be done over remote connections such as VNC. It must be done on the local console.

OpenZFS on OS X 1.9.0 — 2019-05-28

  • zpool sync command, remove system sync for performance
  • Sequential scrub and resilvers
  • Multi-modifier protection (MMP)
  • Disable zfs remap
  • Pool allocation classes
  • Implement large_dnode pool feature
  • zfs initialize disk feature
  • Add UNMAP/TRIM functionality
  • zpool split fixes
  • Random unmount failures fix
  • Async zget
  • Raw send fixes
  • Memory leak fixes (acl, chmod, xattr)
  • Add -o/-x to send properties
  • Allow -o feature=disabled on zpool create
  • Deferred resilver
  • Send lost spill blocks fix
  • Async unlinked drain feature

Notes:

  • This release contains new pool features. If you run zpool upgrade, you will not be able to go back to an older version of O3X.
  • Notarization can sometimes give installation error kextcache code=71. The reason is unknown, but the install completes successfully.
  • This was the last official release for 10.8 and 10.9.
  • Starting from 10.13, clicking the Allow button to load the kext cannot be done over remote connections such as VNC. It must be done on the local console.

OpenZFS on OS X 1.8.2 — 2018-10-30

If you have 1.8.1 installed:

  • OK to skip on 10.12 Sierra, 10.13 High Sierra, and 10.14 Mojave
  • Please update on 10.8 Mountain Lion, 10.9 Mavericks, 10.10 Yosemite, and 10.11 El Capitan

Changes:

  • Fix InvariantDisks crash

Notes:

Due to a compilation error, InvariantDisks for 10.8–10.11 would continuously crash when started by launchctl. Version 1.8.2 was released only to address this problem.

The DMG is named 1.8.2 to make sure fresh downloads are used. Inside it is 1.8.1 recompiled.

OpenZFS on OS X 1.8.1 — 2018-10-18

  • Fix Mojave boot, again
  • Feature: Channel Programs

Note: starting from 10.13, clicking the Allow button to load the kext cannot be done over remote connections such as VNC. It must be done on the local console.

OpenZFS on OS X 1.8.0 — 2018-10-05

Forum-only release due to boot issues with Mojave.

  • Fix renaming of /etc/zfs/zpool.cache.tmp
  • Fix encryption panic

OpenZFS on OS X 1.7.4 Beta — 2018-09-13

  • Mojave boot panic fix
  • Memory and mutex leaks
  • dbuf slowdown fix
  • Fix encryption + cache bug
  • Raw receive fixes
  • Device removal feature
  • Assembler SHA/AES use
  • Storage initialize feature
  • Spaceman V2 feature

Note: starting from 10.13, clicking the Allow button to load the kext cannot be done over remote connections such as VNC. It must be done on the local console.

OpenZFS on OS X 1.7.3 Beta — 2018-04-03

  • Test: creation of pseudo /dev/diskX for mounts
  • Add new property com.apple.devdisk to control pseudo disks, default is pool-only
  • High Sierra-only release
  • Various raw-send fixes
  • spa_deadman support for hung I/O

Known issue:

  • ZFS crypto + cache device is known to cause panics. Avoid using a cache device if you use ZFS crypto.

Note: starting from 10.13, clicking the Allow button to load the kext cannot be done over remote connections such as VNC. It must be done on the local console.

OpenZFS on OS X 1.7.2 — 2018-03-24

  • 7614: ZFS device evacuation/removal
  • 9164: assert: newds == os->os_dsl_dataset
  • Revert Implement VNOP_ALLOCATE
  • Must check return of vnode_getwithvid()
  • Clean up vdev_file to hold on to files
  • Do not rely on ubc_upl_map leaving vaddr as NULL on failures
  • Additional bug fixes

Known issue:

  • ZFS crypto + cache device is known to cause panics. Avoid using a cache device if you use ZFS crypto.

Note: starting from 10.13, clicking the Allow button to load the kext cannot be done over remote connections such as VNC. It must be done on the local console.

OpenZFS on OS X 1.7.1 — 2018-03-13

  • Crypto on-disk fixes for --raw send
  • sharenfs bug fix
  • zdb core dump fix
  • NFS permission denied fix
  • Handle HFS decmpfs compression
  • Correct read-only media import
  • Fix online -e with by-id path
  • Additional bug fixes

Known issue:

  • ZFS crypto + cache device is known to cause panics. Avoid using a cache device if you use ZFS crypto.

Note: starting from 10.13, clicking the Allow button to load the kext cannot be done over remote connections such as VNC. It must be done on the local console.

OpenZFS on OS X 1.7.0 — 2017-10-24

  • ABD support
  • File pool import bug fix
  • ABD move enhancement
  • 7968: multi-threaded spa_sync
  • Native encryption
  • zpool scrub pause/resume
  • zfs recv of compressed streams fix
  • High Sierra support

And lots of small commits and bug fixes.

OpenZFS on OS X 1.6.1 — 2017-02-10

  • Correct zpool events -f and similar polling tasks
  • Support 128 GB RAM and larger systems
  • zfs send corrections
  • Dataset name length corrections
  • zpool iostat enhancements
  • Compressed ARC
  • SPL memory allocator improvements
  • Compressed zfs send / receive
  • ZVOL boot support (ZFS boot was not recommended at the time)
  • ZFS automatic sharing (NFS/SMB/AFP)
  • Enhanced EFI partition library
  • Stop swapfiles being used for pools
  • Sierra / Xcode 8 compatibility work

And lots of small bug fixes.

OpenZFS on OS X 1.5.2 — 2016-04-29

  • New upstream checksums with new feature flags: SHA-512, Edonr, Skein
  • Resumable send and receive
  • Finder notification thread to refresh sizes across datasets
  • SPL enhanced kmem pressure system
  • SPL rewrite TSD using AVL tree
  • Cache names in getattr
  • InvariantDisks serial fixes
  • Show hardlink LinkID fixes
  • Trivial ACLs not hidden
  • Group ACL fixes
  • IOKit deadlock on export fixes
  • MAF and deadlocks in ZVOL fixes
  • Show diskutil info on ZVOLs fix
  • ZED notification fixes
  • Always use by-id for automatic import
  • Fix handling of XATTR_CREATE and XATTR_REPLACE
  • Do not ignore VFS when it passes nosuid and nodev
  • Do not use a shared lock for online expansion

OpenZFS on OS X 1.4.5 — 2015-10-19

  • Remove deadlock with zil_lwb_commit
  • Remove memory leak in znodes leading to beachball
  • Do not call ctldir unmount
  • Xcode 7 compile fixes
  • Adhere to SIP in installer on El Capitan

OpenZFS on OS X 1.4.2 — 2015-09-24

  • Correct kernel thread priorities
  • VFS nolocks rework from 10a286
  • vnop_pageout_v2 replacement
  • Permanent storage work, incomplete
  • Mapped file data written twice fix
  • InvariantDisks fixes
  • SA corruption fixes
  • SA recovery status alerts when detected
  • Modify-after-free bugs and deadlock fixes
  • Complete re-port of Illumos taskq
  • Revert back to using taskq_dispatch_ent()
  • Show async unlinked drain
  • Remove internal unused flag XATTR
  • Additional ioctls from HFS
  • Merge with upstream ZoL

OpenZFS on OS X 1.3.2 RC1 — 2015-05-02

Forum build.

  • Keep serial console debug messages
  • uiocopy failed to set direction
  • SMAP work for Broadwell chipset
  • Device removal panic fixes
  • LASTUNMOUNT property was incorrect
  • getxattr FinderInfo fixes

OpenZFS on OS X 1.3.1-r2 — 2015-04-08

  • vnop_pagein zero non-aligned trailing block causing clang to core
  • ADDEDTIME should be updated when moved to a different directory
  • Remove vnode throttle
  • zfs create -p fix for non-root

OpenZFS on OS X 1.3.1 — 2015-04-01

  • Read-only mounts failed to unmount
  • Read-only import failed to create ZVOL devnodes
  • vnode_getwithvid panic race
  • sa_modify_attrs SA corruption
  • zconfigd added for persistent config
  • Fix missing FIFO named-pipes VNOPs
  • Fake HFS-related ioctls for _kMDQueryScope filter in Spotlight
  • Add new 10.10 ATTR to vnop_getattr
  • FNDRINFO and ADDEDTIME support
  • InvariantDisks fixes
  • Skip optical media on zpool import and add timeout
  • Initial secpolicy framework
  • zpool status -L to resolve symlinks
  • mmap pageout/pagein partial requests fix
  • kstat fixes and additions
  • Unmount/reboot delay fixed, direct reclaim
  • rollback / suspendfs waiting-for-reclaim delay fix
  • Added com.apple.mimic_hfs property to identify as hfs

1.3.1 RC5

  • New daemon InvariantDisks providing persistent paths for zpool: /var/run/disk/by-id, by-path, by-serial
  • Speed up ZVOL unmap
  • Fix lacking force-positive mount options
  • Simplified zed daemonization
  • Bump Spotlight auto-enable date
  • Fix Finder tags modification bug by truncating xattr before overwriting

1.3.1 RC4

  • Return correct VA_NAME in vnop_getattr for dataset mountpoints

1.3.1 RC3

  • ZEVO empty SA panic fix
  • Set B_NOCACHE to avoid possible double caching of block data
  • arcstat.pl included

1.3.1 RC2

  • Release xattrs in vnop_remove sooner
  • Early clearing of z_vnode caused NULL vp panic
  • Fix deadlock in vnop_reclaim

1.3.1 RC1

  • SPL kstat support, including tunables
  • Change from mutex allocations to inline
  • Port of Illumos kmem
  • Memory pressure sensor and memory reap support
  • Improve unmount/export code
  • Handle vnop_pageout() during vnode_create
  • Fix getattrlist case-sensitivity response to support Adobe installers
  • Fix vfs_vget() for Spotlight and SMB; enable Spotlight on mounts
  • Fix zfs.util for whole-disk checks
  • Add working arcstat.pl
  • Work around legacy mount points and unsupported versions
  • Fix fragmentation issue when spacemap_histogram is disabled
  • Open disks as root to fix scrub hang as user
  • Fix zfs diff
  • SPL condvar timeout, fixing cache devices sometimes not being used
  • Reclaim restructuring; enable delete fast path and actual xattr release
  • Enable userquota/groupquota accounting
  • Temporary fix for missing .Trashes
  • Automatically remove old .metadata_never_index before Dec 15
  • Make unlinked drain async, with optional user disable
  • Merge with ZOL upstream-20141120
  • Attempt to detect and remove invalid unlinked-drain entries
  • Move default mountpoint to /Volumes

Pool features added:

  • async_destroy
  • empty_bpobj
  • lz4_compress
  • spacemap_histogram
  • enabled_txg
  • hole_birth
  • extensible_dataset
  • embedded_data
  • bookmarks

OpenZFS on OS X 1.3.0 — 2014-07-24

  • Print the SPL version found instead of v0.01
  • Only replace a pre-existing custom icon if it is the snowflake
  • Run osascript as the logged-in user so notifications actually show up
  • Check for ZEVO still installed or pending reboot after uninstall
  • Fix “Load the module manually...” path when kexts are in /Library/Extensions on 10.9+
  • Fix mutex leaks leading to eventual panic in mutex_enter()
  • Fix spa_strdup freeing the wrong size
  • Enhance bmalloc with bounds and use-after-free checks
  • Fix zdb hang waiting for reclaim_thread
  • Auto-import fixes
  • sysctl normalization code from legacy port, default off
  • Fix hang at export due to Spotlight references
  • Reboot hang fix: wait for reclaim thread
  • Reboot hang fix, take 2: zed ignoring TERM
  • Added spl_wait_interruptible
  • Merged ZOL 0.6.3
  • ZVOL unmap support
  • Better disk icon support
  • onexit fixes and clean zfs send holds
  • Replace MALLOC with bmalloc for performance
  • Yosemite 10.10 compile fixes
  • Rework reclaim vs zget to fix deadlocks
  • Support legacy mountpoints
  • Initial non-root support
  • Rewrite ioctl after upstream
  • Normalized lookup panic fix

And, of course, all the fixes in ZFS on Linux 0.6.3.

OpenZFS on OS X 1.2.7 — 2014-05-15

  • Merged with ZFSOnLinux pre-0.6.3 dated Apr 8 2014
  • create_thread(75%*num_cpus) created a literal 75 threads instead of the intended 3 on a quad-core machine
  • VMEM allocation changed to use bmalloc
  • Add ZED (ZFS Event Daemon) to handle pool events
  • Name cache fixes
  • Change pool sync to remove idle pool writes every 30s
  • Work around zfs recv deadlock
  • vnop_pageout fixes for zeroed blocks beyond EOF
  • Add auto-import and ZED startup scripts
  • .zfs fixes and cleanup
  • Finder hardlink fixes
  • Reclaim fixes, throttle, and waiting on vp changes
  • ZVOL upstream incompatibility fixes
  • ZFS rollback and promote fixes
  • Rework EFI label, whole-disk detection, and Core Storage

This should result in greater stability, larger performance gains, and the ability to use more of the available memory.

Notes:

  • The installer no longer contains 32-bit versions.
  • O3X 1.2.0 ZFS volumes are unintentionally incompatible with other ZFS platforms, except when volblocksize=512.

1.2.0 — 2014-03-13

  • First release

Clone this wiki locally