Releases: openzfs/zfs
zfs-2.0.7
Supported Platforms
- Linux: compatible with 3.10 - 5.15 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- Fix zvol_open() lock inversion #12863
- FreeBSD: Add vop_standard_writecount_nomsync #12828
- FreeBSD: Catch up with more VFS changes #12828
- Remove (now unused) td argument from zfs_lookup() #12748
- FreeBSD: Implement xattr=sa #11997
- Fix several bugs in the FreeBSD rename VOP implementation #12717
- Exit the teardown section later in rename on FreeBSD #12704
- Fix potential use-after-frees in FreeBSD getpages and setattr VOPs #12704
- ZTS: import_rewind_device_replaced reliably fails #12821
- Linux 5.15 compat: META #12824
- ZFS send/recv with ashift 9->12 leads to data corruption #12770
- Linux 5.16: Resolve ZSTD_isError symbol collision in Linux kernel #12819
- Linux 5.16: The blk-cgroup.h header is where struct blkcg_gq is defined #12819
- Linux 5.16: bio_set_dev is no longer a helper macro #12819
- Linux 5.16: type member of iov_iter renamed iter_type #12819
- Linux 5.16: block_device_operations->submit_bio now returns void #12819
- Linux 5.16 compat: asm/fpu/xcr.h is new location for xgetbv/xsetbv #12800
- FreeBSD: avoid memory allocation in arc_prune_async #12049
- tests/file_check: remove unused variable #12187
- Strip colons from all test result filenames #12815
- Linux 5.13 compat: retry zvol_open() when contended #12759
- Temporarily remove tests from sanity runfile #12814
- Add zfs-test facility to automatically rerun failing tests #12740
- Linux 5.16: wait_on_page_bit() no longer available to modules #12800
- Iterate encrypted clones at zvol_create_minor #12471
- Update ABIs for zfs-2.0.7
- libefi: remove efi_auto_sense() #12191
- libefi: efi_get_devname: don't allocate procfs path #12048
- cppcheck: resolve double free #11508
- Restore dirty dnode detection logic #11900 #12745
- Fix lseek(SEEK_DATA/SEEK_HOLE) mmap consistency #12724
- zed: Control NVMe fault LEDs #12648 #12695
- Linux 5.16 compat: submit_bio() #12725
- Linux 5.16 compat: linux/elevator.h #12725
- zed.d/pool_import-led.sh: fix for current zpool scripts #11934 #11935
- Revert behavior of 59eab10 on not-Linux #12698
- Handle partial reads in zfs_read #12370 #12509 #12516
- Cleaning up uio headers #11622
- Extending FreeBSD UIO Struct #11438
- FreeBSD: Move uio_prefaultpages def to uio.h #11176
- Remove UIO_ZEROCOPY functions structures #11124
- FreeBSD: Catch up with recent VFS changes #12668
- vdev_id: Fix PHY sorting #12699
- vdev_id: Fix enclosure_symlinks feature #12660
- Rescan enclosure sysfs path on import #11950 #12095
- vdev_id: Return an error if config file is not found (#12508)
- vdev_id.conf.5: modernise #12125
- vdev_id.8: modernise, note scsi topology #12125
- zfs_get_enclosure_sysfs_path(): don't free undefined pointer #11993
- zfs_get_enclosure_sysfs_path(): don't leak dev path #11993
- vdev_id: variable not getting expanded under map_slot() #11951 #11959
- vdev_id: Create symlinks even if no /dev/mapper/ #11698
- vdev_id: Fix partition regular expression #11637
- Better zfs_get_enclosure_sysfs_path() enclosure support #11617
- vdev_id: Support daisy-chained JBODs in multipath mode #11526
- Added error for writing to /dev/ on Linux
- ZTS: Add known exceptions #12272
- ZTS: Standardize use of destroy_dataset in cleanup #12663
- Update
checkstyle
workflow env to ubuntu-20.04 #12713 - Workaround cloud-init hotplug issue #12644 #12669
- CI: don't install abigail-tools #12529
- CI: use fresh libabigail via docker image #12529
- Update libera webchat client URL #12251
- Don't direct to freenode in issue template #12127
- gcc 11 cleanup #12130 #12188 #12237
- Use fallthrough macro #12441
- Correct a flaw in the Python 3 version checking
- Let zfs diff be more permissive #12072
- Added test for being able to read various variants of zstd #12030
- zed: only go up to current limit in close_from() fallback #11834
- zed: implement close_from() in terms of /proc/self/fd, if available #11834
- Fix cross-endian interoperability of zstd #12008 #12022
- CI: generate ABI files if changed #12379
- Update bug report template
- Update libera webchat client URL #12251
- Don't direct to freenode in issue template #12127
zfs-2.1.2
Supported Platforms
- Linux: compatible with 3.10 - 5.15 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- zfs-dkms rpm: Fix scriptlets dependencies #12822 #12832
- FreeBSD: Add vop_standard_writecount_nomsync #12828
- FreeBSD: Catch up with more VFS changes #12828
- Fix several bugs in the FreeBSD rename VOP implementation #12717
- Remove (now unused) td argument from zfs_lookup() #12748
- Exit the teardown section later in rename on FreeBSD #12704
- Fix potential use-after-frees in FreeBSD getpages and setattr VOPs #12704
- ZTS: import_rewind_device_replaced reliably fails #12821
- Update checkstyle workflow env to ubuntu-20.04 #12713
- Linux 5.15 compat: META (#12824)
- ZFS send/recv with ashift 9->12 leads to data corruption #12770
- Linux 5.16: Resolve ZSTD_isError symbol collision in Linux kernel #12819
- Linux 5.16: The blk-cgroup.h header is where struct blkcg_gq is defined #12819
- Linux 5.16: bio_set_dev is no longer a helper macro #12819
- Linux 5.16: type member of iov_iter renamed iter_type #12819
- Linux 5.16: block_device_operations->submit_bio now returns void #12819
- Linux 5.16 compat: asm/fpu/xcr.h is new location for xgetbv/xsetbv #12800
- tests/file_check: remove unused variable #12187
- Strip colons from all test result filenames #12815
- Linux 5.13 compat: retry zvol_open() when contended #12759
- Temporarily remove tests from sanity runfile #12814
- Add zfs-test facility to automatically rerun failing tests #12740
- Linux 5.16: wait_on_page_bit() no longer available to modules #12800
- Iterate encrypted clones at zvol_create_minor #12471
- Exclude zfs_copies_003_pos on Linux #12738
- Restore dirty dnode detection logic #11900 #12745
- Fix lseek(SEEK_DATA/SEEK_HOLE) mmap consistency #12724
- Upgrade to libabigail 2.0.0 #12722 #12739
- zed: Control NVMe fault LEDs #12648 #12695
- Linux 5.16 compat: submit_bio() #12725
- Linux 5.16 compat: linux/elevator.h #12725
- vdev_id: Fix PHY sorting #12699
- vdev_id: Fix enclosure_symlinks feature #12660
- Rescan enclosure sysfs path on import #11950 #12095
- FreeBSD: Catch up with recent VFS changes #12668
- FreeBSD: fix compilation of FreeBSD world after 29274c9 #12282
- ZTS: Standardize use of destroy_dataset in cleanup #12663
- Workaround cloud-init hotplug issue #12644 #12669
- Use fallthrough macro #12441
- Detect HAVE_LARGE_STACKS at compile time (#12584) #12350
- Correct a flaw in the Python 3 version checking (#12636)
zfs-2.0.6
Supported Platforms
- Linux: compatible with 3.10 - 5.14 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- Linux 5.15 compat: get_acl() #12548
- Linux 5.15 compat: standalone <linux/stdarg.h> #12531
- Linux 5.15 compat: block device readahead #12532
- Linux 5.14 compat: META #12565
- Linux 5.13 compat: META
- FreeBSD: Ignore make_dev_s() errors #12375
- FreeBSD: Switch from MAXPHYS to maxphys on FreeBSD 13+ #12378
- FreeBSD: Retry OCF ENOMEM errors. #12077
- Livelist logic should handle dedup blkptrs #11480 #12177
- Linux 5.14 compat: explicity assign set_page_dirty #12427
- Add SIGSTOP and SIGTSTP handling to issig #11801
- Linux 5.14 compat: blk_alloc_disk() #12362 #12409
- Initialize dn_next_type[] in the dnode constructor #12383
- Zero pad bytes following TX_WRITE log data #12383
- Zero pad bytes when allocating a ZIL record #12383
- Initialize all fields in zfs_log_xvattr() #12383
- file reference counts can get corrupted #12299
- Revert Consolidate arc_buf allocation checks #11531 #12227
- Fix unfortunate NULL in spa_update_dspace #12380 #12428
- Tinker with slop space accounting with dedup #12271
- Add upper bound for slop space calculation #11023
Note:
We had to re-push the zfs-2.0-release branch and zfs-2.0.6 tag after mistakenly leaving out some commits (see #12582). RPMs, release notes and tarballs already had the correct commits, and were unaffected.
OpenZFS 2.1.1
Supported Platforms
- Linux: compatible with 3.10 - 5.14 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- Fixed data integrity issue when underlying disk returns error #12391 #12443
- ZTS: Waiting for zvols to be available #12553
- Verify embedded blkptr's in arc_read() #12535
- Linux 5.15 compat: get_acl() #12548
- Allow sending corrupt snapshots even if metadata is corrupted #12541
- arc: Drop an incorrect assert #9897 #12020 #12246
- Compressed receive with different ashift can result in incorrect PSIZE on disk #12522 #8462
- Linux 5.15 compat: standalone <linux/stdarg.h> #12531
- Linux 5.15 compat: block device readahead #12532
- Detect iSCSI in the zpool cmd vdev media script #12206
- CI: don't install abigail-tools #12529
- Update ABI files via new libabigail version #12529
- Libabigail: make .abi files more consistent #12529
- CI: use fresh libabigail via docker image #12529
- Check for libabigail version #12529
- ZTS: Remove exceptions for flaky zhack on FreeBSD #12527
- FreeBSD: Don't remove SA xattr if not SA znode #12514
- Fix cross-endian interoperability of zstd #12008 #12022
- ZTS: Waiting for zvols to be available #12515
- Correct checking bdev_check_media_change message #12492
- Make 'zpool labelclear -f' work on offlined disks #12511
- vdev_id: Return an error if config file is not found #12486
- zpool-remove.8: describe top-level vdev sector size limitation #11339 #12472
- Initialize parity blocks before RAID-Z reconstruction benchmarking #12473
- ZTS: Add tests for creation time #12432
- Linux 4.11 compat: statx support #8507
- zfs.4: Fix typo s/compatiblity/compatibility/ #12464
- Remove b_pabd/b_rabd allocation from arc_hdr_alloc() #12398
- Optimize arc_l2c_only lists assertions #12421
- Fix/improve dbuf hits accounting #12422
- Avoid vq_lock drop in vdev_queue_aggregate() #12297
- Use more atomics in refcounts #12420
- ZTS: Avoid unset $tmpdir in redacted_panic #12455
- Restore FreeBSD sysctl processing for arc.min and arc.max #12161
- zfs: add missed dependency of zfs module on zlib #12442
- Add zfs.sh -r flag to reload modules #12450
- Fix usage of find in tests/Makefile.am #12453
- Run arc_evict thread at higher priority #12397
- Make get_key_material_file fail more verbosely #12410
- Enable /proc/diskstats for zvols #12440 #12066
- Man zpool-scrub.8: describe sequential scrub #12429
- Modify checksum obtain method of QAT #12343
- Allow disabling of unmapped I/O on FreeBSD #12446
- Add comment on metaslab_class_throttle_reserve() locking #12419
- Assorted fixes for the performance tests #12408
- Read past end of argv array in zpool_do_import() #12339
- Add missing properties to zfs allow manpage #12402
- Fixes in persistent L2ARC #12365
- Initialize dn_next_type[] in the dnode constructor #12383
- Zero pad bytes following TX_WRITE log data #12383
- Zero pad bytes when allocating a ZIL record #12383
- Initialize all fields in zfs_log_xvattr() #12383
- Initialize "autoreplace" in spa_ld_get_props() #12383
- Linux 5.14 compat: explicity assign set_page_dirty #12427
- Fix unfortunate NULL in spa_update_dspace #12380 #12428
- Linux 5.14 compat: blk_alloc_disk() #12362 #12409
- zloop: Add a max iterations option, use default run/pass times #12411
- FreeBSD: Ignore make_dev_s() errors #12375
- Remove old orig_fd variable from zfs send #12404
- Optimize allocation throttling #12314
- CI: generate ABI files if changed #12379
- Minor ARC optimizations #12348
- dmu_redact.c does not call bqueue_destroy #12118
- A few fixes of callback typecasting (for the upcoming ClangCFI) #12260
- Remove unused fields from zvol_task_t #12361
- FreeBSD: Switch from MAXPHYS to maxphys on FreeBSD 13+ #12378
- zpool_influxdb: fix -Werror=stringop-truncation #12344
- Correct zfs-send(8) on readonly sends #12336
- Introduce dsl_dir_diduse_transfer_space() #12300
- config/libatomic: require -latomic iff atomic.c doesn't link w/o it #12345 #12359
- Tinker with slop space accounting with dedup #12271
- Fix ARC ghost states eviction accounting #12279
- Update bug report template #12340
- file reference counts can get corrupted #12299
- dprintf_dnode: strcpy -> strlcpy #12311
- Replace strchrnul() with strrchr() #12312
- FreeBSD: Use unmapped I/O for scattered/gang ABD buffers #12320
- FreeBSD: Hardcode abd_chunk_size to PAGE_SIZE #12328
- Move gethrtime() calls out of vdev queue lock #12281
- Use substantially more robust program exit status logic in zvol_id #12302
- Print zvol_id error messages to stderr rather than stdout #12302
- Udev rules: use match (==) rather than assign (=) for PROGRAM #12302
- Udev rules: replace deprecated $tempnode with $devnode #12302
- Udev rules: use non-ancient comma syntax #12302
- Compact dbuf/buf hashes and lock arrays #12289
- Fix abd leak, kmem_free correct size of abd_t #12295
- Upstream: dmu_zfetch_stream_fini leaks refcount #12294
- ZED: Match added disk by pool/vdev GUID if found (#12217)
- Optimize small random numbers generation #12183
- FreeBSD: Implement xattr=sa #11997
- FreeBSD: Clean up ASSERT/VERIFY use in module #11971
zfs-2.1.0
Supported Platforms
- Linux: compatible with 3.10 - 5.13 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Major New Features
-
Distributed Spare RAID (dRAID) - Create pools using a new distributed variant of RAIDZ which enables dramatically faster resilver times using integrated hot spares. Full redundancy can be restored to the pool in a fraction of the time normally required to do a full disk replacement. #10102
-
Compatibility Property - The new
compatibility
property lets administrators specify the set of features which should be enabled on the pool. This fine grained control makes it easy to create portable pools and maintain pool compatibility between OpenZFS versions and across platforms. #11468 #11861 -
InfluxDB Support - Collect pool statistics with the
zpool influxdb
command in an InfluxDB time-series database for analysis and monitoring. #10786
Changes to the zpool
/ zfs
commands
-
zpool create -u
- Prevent filesystems from being automatically mounted. #11254 -
zpool history -i
- Pool history now includes how long each command took for performance analysis. #11440 -
zpool status
- Informs users of any disks which are using a non-optimal block size. #11088 -
zfs send --skip-missing|-s
- Skip missing snapshots when sending replication streams. #11710 -
zfs rename -u
- Rename a filesystem without remounting. #10839
Notable Changes
-
Extensive modernization of the man pages. #12125 #12129 #12149 #12169 #12212
-
Updated
vdev_id
to support daisy-chained JBODs in multipath mode. #11526 -
Updated
arcstat
with new L2ARC statistics and added-a
(all) and-p
(parsable) command line options. #10743 -
Support for memory and CPU hotplugging. #11212
-
Renamed
acltype=posixacl
toacltype=posix
, an alias was added for compatibility. #10918 -
Added automated ABI validation for public library interfaces. #11287
-
Added sysctl for fletcher4 on FreeBSD #11270
Performance
-
Optimized prefetch for parallel workloads. #11652
-
Improved scalability by reduced contention on locks and atomics. #11288 #12172 #12145 #11904
-
Reduced pool import time. #11470 #11502 #11469 #11467 #11467
-
Reduced fragmentation from ZIL blocks. #11389
-
Improved
zfs receive
performance with lightweight write. #11105 -
Improved module load time. #11282
Additional Information
-
Documentation - Updated OpenZFS documentation for Linux and FreeBSD.
-
Change log - Complete v2.0.0 - v2.1.0 change log
-
Module options - The default values for the module options were selected to yield good performance for the majority of workloads and configurations. They should not need to be tuned for most systems but are available for performance analysis and tuning. See the module parameters documentation for the complete list of the options and what they control.
Added/removed/renamed module options
- Added:
- zfs_embedded_slog_min_ms - Minimum number of metaslabs required to dedicate one for log blocks
- zfs_metaslab_find_max_tries - Normally only consider this many of the best metaslabs in each vdev
- zfs_metaslab_try_hard_before_gang - Try hard to allocate before ganging
- zfs_rebuild_scrub_enabled - Automatically scrub after sequential resilver completes
- zfs_rebuild_vdev_limit - Max bytes in flight per leaf vdev for sequential resilvers
- zfs_traverse_indirect_prefetch_limit - Traverse prefetch number of blocks pointed by indirect block
- zio_taskq_batch_tpq - Number of threads per IO worker taskqueue
- Removed:
- zfs_zevent_cols - Max event column width
- zfs_zevent_console - Log events to the console
OpenZFS 2.1.0-rc8
Supported Platforms
- Linux: compatible with 3.10 - 5.13 kernels
- FreeBSD: FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- Linux 5.13 compat: META
- zed: fix sending emails #12292
- Avoid 64bit division in multilist index functions #12288
- Fix plymouth passphrase prompt with dracut #12147
- Fix build with KASAN #12232
- Help compiller optimize out abd_verify() #12280
- Update cache file when setting compatibility property #12261 #12276
- Fix flag copying in resume case #12266
- zfs_metaslab_mem_limit should be 25 instead of 75 #12273
- Stop using "zstreamdump" in tests/ #12277
- Update libera webchat client URL #12251
- gcc 11 cleanup #12130 #12188 #12237
- ZTS: Add known exceptions #12272
- Annotated dprintf as printf-like #12233
- Revert Consolidate arc_buf allocation checks #11531 #12227
- Use wmsum for arc, abd, dbuf and zfetch statistics. #12172
- libspl: implement atomics in terms of atomics #11904 #12252 #12244
- Avoid deadlock when removing L2ARC devices under I/O #12054
- systemd: import: expand $ZPOOL_IMPORT_OPTS correctly #12231
- vdev_draid_min_asize() ignores reserved space #11459 #12221
- Do not hash unlinked inodes #9741 #11223 #11648 #12210
- Added uncompress requirement #12071 #1268
- ZTS: Add zfs_clone_livelist_dedup.ksh to Makefile.am #12224
zfs-2.0.5
Supported Platforms
- Linux: compatible with 3.10 - 5.12 kernels
- FreeBSD: Release 12.2, stable/12, 13.0 (HEAD)
Changes
- Avoid deadlock when removing L2ARC devices under I/O #12054
- Do not hash unlinked inodes #9741 #11223 #11648 #12210
- FreeBSD: incorporate changes to the VFS_QUOTACTL(9) KPI #12052
- FreeBSD: use vnlru_free_vfsops if available #11881
- cppcheck: integrete cppcheck #11508
- Simple change to fix building in recent environments #12059
- ZTS: pool_state test check for pool existence in cleanup #11534
- Fix zfs_get_data access to files with wrong generation #10593 #11682
- zfs_vnops: make zfs_get_data OS-independent #10979
- Consolidate zfs_holey and zfs_access #11125
- zed: reap child after killing on time-out #11769 #11798
- Fix error code on __zpl_ioctl_setflags() #11791
- Fix typo in zgenhostid.8 #11770
- Linux: always check or verify return of igrab() #11704
- Linux: Set spl_kmem_cache_slab_limit when page size !4K #12152 #11429 #11574 #12150
- Fix zfs_get_data access to files with wrong generation #10593 #11682
- Fix dmu_recv_stream test for resumable #12034
- Remove iov_iter_advance() for iter_write #12041 #12155
- linux 5.13 compat: bdevops->revalidate_disk() removed (#12122) #11967 #11977
- Bend zpl_set_acl to permit the new userns* parameter #12076 #12093
- Update tmpfile() existence detection
- RPM: Explicitly set the required min/max kernel version for the DKMS package #12124
- Linux 5.12 update: bio_max_segs() replaces BIO_MAX_PAGES #11765
- Linux 5.12 compat: idmapped mounts #11712
- FreeBSD: Initialize/destroy zp->z_lock #12003
- ZTS: Fix xattr_002_neg passing too soon #11970
- zdb: ASSERT issues when DEBUG is not defined #11932
- ZTS: Add known exceptions #11949
- receive: don't fail inheriting (-x) properties on wrong dataset type #11416 #11840 #11864
- FreeBSD: damage control racing .. lookups in face of mkdir/rmdir #11926
- Fix AVX512BW Fletcher code on AVX512-but-not-BW machines #11937 #11938
- Fixed incorrect man page reference in zfsprops(8) #11918
- freebsd/libshare: nfs: make nfs_is_shared() thread-safe #11886
- libshare: nfs: don't leak nfs_lock_fd when lock fails #11886
- libzfs: refresh property cache after inheriting userprop #11064 #11911
- libzfs: don't mark prompt+raw as retriable #11911 #11031
- Combine zio caches if possible #11877
- Fix crash in zio_done error reporting #11872 #11896
- Fix 'make checkbashisms` warnings #11902
- Fix vdev health padding in zpool list -v #11899
- libzfs: zfs_mount_at(): load key for encryption root if MS_CRYPT #11870 #11875
- ZTS: fix removal_condense_export test case #11869
- libzfs{,_core}: set O_CLOEXEC on persistent (ZFS_DEV and MNTTAB) fds #11866
- libzfs: zfs_crypto_create() requires a new key by definition: set newkey #11866
- zfprops(8): fix spacing in jailed= arguments #11866
- zfs-[un]jail(8): fix "zfs-jail [un]jail" leftovers #11866
- ZTS: Improve cleanup in removal_with_export #11856
- ZTS: Tests using zhack may fail on FreeBSD #11855
- Ratelimit deadman zevents as with delay zevents #11786
- zfs get -p only outputs 3 columns if "clones" property is empty #11837
- zpool-features.5: remove "booting not possible with this feature"s #11842
- man: fix wrong .Xr macros usages #11845
- libzutil: zfs_isnumber(): return false if input empty #11841 #11843
- ZTS: pool_checkpoint improvements #11832
- ZTS: inheritance/inherit_001_pos is flaky #11830
- Avoid taking global lock to destroy zfsdev state #11751
- FreeBSD: Fix stable/12 after AT_BENEATH removal #11827
- Allow pool names that look like Solaris disk names #11781 #11813
- Don't scale zfs_zevent_len_max by CPU count #11822
- Atomically check and set dropped zevent count #11822
- CI: Increase free space in workflow #11826
- Fix regression in POSIX mode behavior #11760
- ZTS: New test for kernel panic induced by redacted send #11764
- Allow setting bootfs property on pools with indirect vdevs #11763
- FreeBSD: make seqc asserts conditional on replay #11739
- FreeBSD: Fix memory leaks in kstats #11767
- Hold and release permissions exist #11727
- ZTS: Add tests for DOS mode attributes #11734
- ZTS: Fix incorrect use of libtest in user_run by xattr_003_neg #11185
- ZTS: Use ksh and current environment for user_run #11185
- FreeBSD: bring back possibility to rewind the checkpoint from bootloader #11730
- FreeBSD: Clean up zfsdev_close to match Linux #11720
- FreeBSD: switch teardown lock to rms #11153
- Macroify teardown lock handling #11153
- FreeBSD: rename teardown inactive macros to mimick rrm convention #11153
- FreeBSD: remove 2 assertions that teardown lock is not held #11153
- FreeBSD: rework asserts in zfs_dd_lookup #11153
- Add branch prediction to ZFS_ENTER and ZFS_VERIFY_ZP macros #11153
- zpool import cachefile improvements #11716
- Fix whitespace introduced in ecc277c #11722
- FreeBSD: Fix scope of deadman tunables #11715
- Microoptimizations for VERIFY() and friends #11708
- Add missing files to Makefile #11705
- CI checkstyle: pin ubuntu version #11713
- ZTS events_002: Improve speed and reliability #11703
- zvol: call zil_replaying() during replay #11667
- ZTS: Improve cleanup in zpool tests #11694
- Cancel TRIM / initialize on FAULTED non-writeable vdevs #11588
- ZTS: zpool_trim_start_and_cancel_pos.ksh #11649
- Fix overly broad locking in spa_vdev_config_exit() #11585
- Wrap bare EINVAL returns with SET_ERROR #11636
OpenZFS 2.1.0-rc7
Supported Platforms
- Linux: compatible with 3.10 - 5.12 kernels
- FreeBSD: FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- Re-embed multilist_t storage #12158
- dracut: 90zfs: respect zfs_force=1 on systemd systems #11403 #12195
- Remove pool io kstats #12212
- Added error for writing to /dev/ on Linux #11991
- libzfs: format safety #12116
- zgenhostid.8: revisit #12196
- Consistentify miscellaneous style on remaining manpages #12196
- Move properties, parameters, events, and concepts around manual sections #12149 #12196
- man: use one Makefile, use OpenZFS for .Os #12196
- Fix minor shellcheck 0.7.2 warnings #12208
- zed.d/history_event-zfs-list-cacher.sh.in: parallelise, simplify #12042
- zed.d/all-debug.sh: simplify #12042
- zed-functions.sh: zed_lock(): don't truncate lock #12042
- libzfs: On FreeBSD, use MNT_NOWAIT with getfsstat #12091
- Modernise/fix/rewrite unlinted manpages #12169
- Force --enable-debug on FreeBSD if INVARIANTS is set #12185 #12163
- Livelist logic should handle dedup blkptrs #11480 #12177
- More aggsum optimizations #12145
- libzfs: write_inuse_diffs_one: format strerror() with "%s" #12197
- i-t: don't try to import from empty cache #12108
- Use %%/* instead of awk -F/ {print $1} to strip datasets #12108
- dracut: 90zfs: zfs-load-key: don't load unencrypted bootfs' keylocation #11800 #12108
- dracut: 90zfs: module-setup: try /lib*/libgcc_s.so*, relax /u/l/gcc path #11750 #12108
- Let zfs diff be more permissive #12072
- FreeBSD: incorporate changes to the VFS_QUOTACTL(9) KPI #12052
- Fix error check in nvlist_print_json_string #12175 #12176
- Lint most manpages #12129
- mancheck: accept lints, accept lint overrides #12129
- Linux: Set spl_kmem_cache_slab_limit when page size !4K #12152 #11429 #11574 #12150
- A couple of small style cleanups #12156
- zfs-module-parameters.5: remove nonexistent parameters #12157
- spl-module-parameters.5: remove spl_kmem_cache_{expire,obj_per_slab_min} #12157
- Quick fixes for two ZTS failures #12165
- Added another missed case to arc_summary3 #12160
- FreeBSD boot code reminder after zpool upgrade #12099 #12104
- Remove iov_iter_advance() for iter_write #11378 #12041 #12155
- Turn checkbashisms into a make target #12101
- Turn shellcheck into a normal make target. Fix new files it caught #10512 #12101
- udev/rules.d: .gitignore: glob all rules #12101
- i-t: don't suggest zpool-import with altroot to /root #12148
- i-t: let rootdelay= set $ZFS_INITRD_PRE_MOUNTROOT_SLEEP #11663 #12148
- zstream: force-install zstreamdump link #12143
- Widen mancheck to all of man and test-runner #12125
- test-runner.1: modernise #12125
- zfs-events.5: modernise #12125
- vdev_id.conf.5: modernise #12125
- man: use Nm/Cm/Fl consistently #12125
- zed.8: modernise #12125
- cstyle.1: modernise #12125
- vdev_id.8: modernise, note scsi topology #12125
- zhack.1: modernise #12125
- zpool_influxdb.8: modernise #12125
- zinject.8: modernise #12125
- raidz_test.1: modernise #12125
- zpoolprops.8: fix spacing in ashift #12125
- fsck.zfs.8: modernise #12125
- arcstat.1: modernise #12125
- ztest.1: modernise #12125
- zgenhostid.8: use single-line indent macro for single-line examples #12125
- long options for ztest #12117
- Don't direct to freenode in issue template #12127
- Introduce write-mostly sums #12114
- Improve scrub maxinflight_bytes math. #12046
- etc/systemd/zfs-mount-generator: output tweaks #11915
- etc/systemd/zfs-mount-generator: rewrite in C #11917
- zstreamdump: replace with link to zstream #12015
- d/zfsutils.zfs.init derivatives: shellcheck, fix header #12042
- contrib/bash_completion.d: fix obvious shellcheck problems #12042
- zgenhostid: use argument path directly #12042
- Trim excess shellcheck annotations. Widen to all non-Korn scripts #12042
- Fix SC2181 ("[ $?") outside tests/ #12042
- i-t: rewrite hooks #12017
- dracut/90/module-setup: mainly shellcheck cleanup #11956
The majority of the above changes are documentation updates or minor cleanup.
OpenZFS 2.1.0-rc6
Supported Platforms
- Linux: compatible with 3.10 - 5.12 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- RPM: Explicitly set the required min/max kernel version for the DKMS package #12124
- Minor fix to configure on s390x #12126
- Bend zpl_set_acl to permit the new userns* parameter #12076 #12093
- Reinstate the old zpool read label logic as a fallback #12032 #12040
- mount.zfs.8: match to reality; zfsprops.8: add missing temporary options #12111
- mount.zfs.8: modernise #12111
- zfsprops.8: remove nbmand-not-used-on-Linux and pointer to mount(8) #12111
- Various Linux kABI cosmetics #12103
- linux: don't fall through to 3-arg vfs_getattr #12103
- FreeBSD: Update dataset_kstats for zvols in dev mode #12097
- Correct flaws in arc_summary[23] and their test. #12037 #12036
- FreeBSD: avoid memory allocation in arc_prune_async #12049
- FreeBSD: Retry OCF ENOMEM errors. #12077
- Add note for printing all dbgmsg entries on FreeBSD #12113
- Propagate vdev state due to invalid label corruption #12088
- Update tmpfile() existence detection #12060 #12087
- Fix dRAID sequential resilver silent damage handling #12061
- zfs-allow.8: mention 'bookmark' permission #12064
- Simple change to fix building in recent environments #12059 #11987 #12056
- Scale worker threads and taskqs with number of CPUs #11966
- ZTS: Increase redundancy test timeout #12043
- Fix dmu_recv_stream test for resumable #12034
- FreeBSD: Use SET_ERROR to trace xattr name errors #11997
- FreeBSD: Don't force xattr mount option #11997
- Revert "Fix raw sends on encrypted datasets when copying back snapshots" #11294 #12025 #12033
- Widen mancheck target to all pages, fix them #12017
- ZTS: Add known exceptions #12023
- linux 5.13 compat: bdevops->revalidate_disk() removed #11967 #11977
- module/zfs: remove zfs_zevent_console and zfs_zevent_cols #7082 #11996
OpenZFS 2.1.0-rc5
Supported Platforms
- Linux: compatible with 3.10 - 5.12 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- libzfs: zfs_asprintf(): don't return undefined pointer #11993
- libzfsbootenv: lzbe_set_boot_device(): don't free undefined pointer #11993
- zfs_get_enclosure_sysfs_path(): don't free undefined pointer #11993
- zfs_get_enclosure_sysfs_path(): don't leak dev path #11993
- zpool: vdev_run_cmd(): don't free undefined pointers #11993
- libzfs: zpool_load_compat(): don't free undefined pointers #11993
- libzfs: zpool_load_compat(): open feature file cloexec #11993
- copy-builtin: posix conformance #12004
- Fix dRAID self-healing short columns #12010
- Replace ZoL with OpenZFS where applicable #11956
- FreeBSD: Remove !FreeBSD ifdef'd code #11994
- Clean up use of zfs_log_create in zfs_dir #11994
- zed: protect against wait4()/fork() races to the global PID table #11963 #11965
- Return required size when encode_fh size too small #11995
- Simplify/fix dnode_move() for dn_zfetch #11936 #11998
- FreeBSD: Initialize/destroy zp->z_lock #12003
- Updated zfs_dbgmsg_enable documentation to be more accurate #11984 #11986
- zed.d/zed-functions.sh: fix zed_guid_to_pool() on dash #11935 #11954
- zed.d/history_event-zfs-list-cacher.sh: no grep for snapshot detection #11935
- zed.d/*-notify.sh: use mktemp instead of generating temp path manually #11935
- zed.d/pool_import-led.sh: fix for current zpool scripts #11934 #11935
- libzutil: fix dm_get_underlying_path() return if not a DM device #11935
- ZTS: Fix xattr_002_neg passing too soon #11970
- FreeBSD: Prune some unneeded definitions #11973
- vdev_id: variable not getting expanded under map_slot() #11951 #11959
- vdev_mirror: don't scrub/resilver devices that can't be read #11930
- zfs.spec.in: remove post ldconfig scriptlets #11931
- zdb: ASSERT issues when DEBUG is not defined #11932
- ZTS: Add known exceptions #11949
- Drop "All rights reserved" from files by trasz@FreeBSD.org #11947
- receive: don't fail inheriting (-x) properties on wrong dataset type #11416 #11840 #11864
- FreeBSD: damage control racing .. lookups in face of mkdir/rmdir #11926
- Fix AVX512BW Fletcher code on AVX512-but-not-BW machines #11937 #11938