Skip to content

Releases: openzfs/zfs

zfs-2.1.7

02 Dec 02:03
zfs-2.1.7
Compare
Choose a tag to compare

Supported Platforms

  • Linux: compatible with 3.10 - 6.0 kernels
  • FreeBSD: compatible with releases starting from 12.2-RELEASE

Changes

  • zfs-2.1.7: Use ubuntu-20.04 for zloop and sanity builders
  • Fix setting the large_block feature after receiving a snapshot #13699 #13782
  • Make autodetection disable pyzfs for kernel/srpm configurations #13394 #14178
  • Don't leak packed recieved proprties #14197
  • Fix NULL pointer dereference in dbuf_prefetch_indirect_done() #14210
  • Lua: Fix bad bitshift in lua_strx2number() #14204
  • Fix clang 13 compilation errors #13551
  • Remove final K&R definitions #13447
  • module: zfs: vdev_removal: remove unused num_indirect #13304
  • tests: cmd: draid: remove unused and undocumented -v #13304
  • linux: libspl: zone: () -> (void) #12968
  • Correct multipathd.target to .service #12709 #14171
  • Handle and detect #13709's unlock regression (#14161)
  • Fix arc_p aggressive increase #14137 #14120
  • FreeBSD: Fix out of bounds read in zfs_ioctl_ozfs_to_legacy() #14135
  • Expose zfs_vdev_open_timeout_ms as a tunable #14133
  • Remove an unused variable #14125
  • Make 1-bit bitfields unsigned #14125
  • Address warnings about possible division by zero from clangsa #14124
  • Avoid null pointer dereference in dsl_fs_ss_limit_check() #14103
  • Fix too few arguments to formatting function #14098
  • Remove zpl_revalidate: fix snapshot rollback #9600 #14070
  • Fix theoretical use of uninitialized values #14043
  • Fix memory leaks in dmu_send()/dmu_send_obj() #13973
  • Fix possible NULL pointer dereference in sha2_mac_init() #14044
  • set_global_var() should not pass NULL pointers to dlclose() #14044
  • Fix NULL pointer dereference in spa_open_common() #14044
  • Fix NULL pointer passed to strlcpy from zap_lookup_impl() #14044
  • fm_fmri_hc_create() must call va_end() before returning #14044
  • Fix NULL pointer dereference in zdb #14044
  • ZED: Fix uninitialized value reads #14047
  • Fix theoretical array overflow in lua_typename() #13947
  • Fix potential NULL pointer dereference in lzc_ioctl() #14008
  • scripts/enum-extract.pl should not hard code perl path #14012
  • PAM: Fix unchecked return value from zfs_key_config_load() #13978
  • Fix potential NULL pointer dereference in dsl_dataset_promote_check() #13967
  • Fix unreachable code in zstreamdump #13946
  • PAM: Fix uninitialized value read #13957
  • set_global_var_parse_kv() should pass the pointer from strdup() #13867
  • Call va_end() before return in zpool_standard_error_fmt() #13904
  • Fix potential NULL pointer dereference in zfsdle_vdev_online() #13903
  • FreeBSD: Fix uninitialized pointer read in spa_import_rootpool() #13923
  • Linux: Fix use-after-free in zfsvfs_create() #13883
  • Fix null pointer dereferences in PAM #13889
  • Handle ECKSUM as new EZFS_CKSUM ‒ "insufficient replicas" #6805 #13808 #13898
  • Fix use-after-free bugs in icp code #13881
  • Remove incorrect free() in zfs_get_pci_slots_sys_path() #13864
  • Cleanup: Make memory barrier definitions consistent across kernels #13843
  • zpool_load_compat() should create strings of length ZFS_MAXPROPLEN #13866
  • icp: fix all !ENDBR objtool warnings in x86 Asm code #14035
  • icp: fix rodata being marked as text in x86 Asm code #14035
  • icp: properly fix all RETs in x86_64 Asm code #14035
  • libzfs recv: Check if user prop before inheritable
  • dsl_prop_known_index(): check for invalid prop #14142 #14147
  • zed: Avoid core dump if wholedisk property does not exist #14062
  • zed: Prevent special vdev to be replaced by hot spare #14129
  • Deny receiving into encrypted datasets if the keys are not loaded (#14139) #13598 #14055 #14119
  • zil: Relax assertion in zil_parse #14116
  • quota: extend quota for dataset #13839
  • Fix ARC target collapse when zfs_arc_meta_limit_percent=100 #14054 #14093
  • Propagate extent_bytes change to autotrim thread #14077
  • Linux 6.1 compat: change order of sys/mutex.h includes #14040
  • Linux 6.0 compat: META #14091
  • Linux compat: fix DECLARE_EVENT_CLASS() test when ZFS is built-in #14006
  • zfs_domount: fix double-disown of dataset / double-free of zfsvfs_t #14025
  • Linux: Remove ZFS_AC_KERNEL_SRC_MODULE_PARAM_CALL_CONST autotools check #13984 #14004
  • CI: bump actions/upload-artifact to v3 #14018
  • CI: bump actions/checkout to v3 #14018
  • Stop ganging due to past vdev write errors #14003
  • zvol_wait logic may terminate prematurely #13998
  • Remove ambiguity on demand vs prefetch stats reported by arc_summary #13985
  • Fix panic in dsl_process_sub_livelist for EINTR #13939
  • Bring per_txg_dirty_frees_percent back to 30 #13932 #13938
  • Add options to zfs redundant_metadata property #13680
  • FreeBSD: vn_flush_cached_data: observe vnode locking contract #14079
  • FreeBSD: Fix a pair of bugs in zfs_fhtovp() #14001 #13974
  • Fix sequential resilver drive failure race condition #14041 #14050
  • contrib: dracut: zfs-snapshot-bootfs: exit status fix
  • contrib: dracut: zfs-{rollback,snapshot}-bootfs: explicit snapname fix #13585
  • kcfpool_alloc() should have its argument list marked void #14023
  • etc: mask zfs-load-key.service #14010 #14019
  • initramfs: use mount.zfs instead of mount #13305

zfs-2.1.6

03 Oct 22:58
zfs-2.1.6
Compare
Choose a tag to compare

Supported Platforms

  • Linux: compatible with 3.10 - 5.19 kernels
  • FreeBSD: compatible with releases starting from 12.2-RELEASE

Changes

  • Fix bad free in skein code #13954
  • zpool: Don't print "repairing" on force faulted drives #13927 #13930
  • FreeBSD: handle V_PCATCH #13910
  • FreeBSD: catch up to 1400068 #13909
  • FreeBSD: stop passing LK_INTERLOCK to VOP_LOCK #13908
  • FreeBSD: Fix integer conversion for vnlru_free{,_vfsops}() #13882
  • FreeBSD: Ignore symlink to i386 includes #13719
  • LUA: Fix CVE-2014-5461 #13949
  • Linux: Fix uninitialized variable usage in zio_do_crypt_data() #13944
  • Refactor Log Size Limit #13476
  • Revert "Reduce dbuf_find() lock contention"
  • Add zfs_btree_verify_intensity kernel module parameter #13874
  • Fix incorrect size given to bqueue_enqueue() call in dmu_redact.c #13885
  • Delay ZFS_PROP_SHARESMB property to handle it for encrypted raw receive #13878
  • zfs recv hangs if max recordsize is less than received recordsize #13855
  • include: move SPA_MINBLOCKSHIFT and zio_encrypt to sys/fs/zfs.h #12116
  • Improve too large physical ashift handling #13798
  • Ask libtool to stop hiding some errors #13086
  • Add Module Parameter Regarding Log Size Limit #12284
  • Optimize txg_kick() process (#12274) #12274
  • zfs recv hangs if max recordsize is less than received recordsize #13855
  • make DMU_OT_IS_METADATA and DMU_OT_IS_ENCRYPTED return B_TRUE or B_FALSE #13842
  • vdev_draid_lookup_map() should not iterate outside draid_maps #13865
  • Add physical device size to SIZE column in 'zpool list -v' #12561 #13106
  • Introduce a tunable to exclude special class buffers from L2ARC #11761 #12285
  • config: check for parallel(1), use it for cstyle
  • zed: Fix config_sync autoexpand flood #13729
  • Add xattr_handler support for Android kernels #13824
  • Fix column width in 'zpool iostat -v' and 'zpool list -v' #13811
  • FreeBSD: Mark ZFS_MODULE_PARAM_CALL as MPSAFE #13756
  • Apply arc_shrink_shift to ARC above arc_c_min #13794
  • Importing from cachefile can trip assertion #13781
  • ZTS: Fix zpool_expand_001_pos #13743
  • zed: Look for NVMe DEVPATH if no ID_BUS #13512 #13646
  • zed: Ignore false 'atari' partitions in autoreplace #13497 #13632
  • rpm: Silence "unversioned Obsoletes" warnings on EL 9 #13584 #13638
  • rpm: Use the correct version-release information in dependencies #13489
  • Fix use-after-free in btree code #10989 #13861
  • contrib: dracut: zfs-snapshot-bootfs: exit status fix #13769
  • arcstat: fix -p option #12916 #13767
  • Fix problem with zdb_objset_id test.
  • Linux 6.0 compat: register_shrinker() now var-arg #13748
  • Linux 5.20 compat: blk_cleanup_disk() #13728
  • Linux 5.20 compat: bdevname() #13728
  • Linux 5.19 compat: META #13715
  • Fix problem with zdb -d #12845 #12944
  • Fix checkstyle warning: E275 missing whitespace after keyword #13710
  • Revert behavior of 59eab10 on not-Linux #12698
  • Handle partial reads in zfs_read #12370 #12509 #12516
  • module: lua: ldo: fix pragma name #13348
  • ZTS: Fix io_uring support check #13648 #13685
  • Fix objtool: missing int3 after ret warning #13528 #13575
  • ICP: Add missing stack frame info to SHA asm files #11733
  • Fix -Wformat-overflow warning in zfs_project_handle_dir() #13528 #13575
  • Fix -Wformat-truncation warning in upgrade_set_callback() #13528 #13575
  • Fix -Wuse-after-free warning in dbuf_destroy() #13528 #13575
  • Fix -Wuse-after-free warning in dbuf_issue_final_prefetch_done() #13528 #13575
  • Fix -Wattribute-warning in dsl layer #13528 #13575
  • Fix -Wattribute-warning in edonr #13528 #13575
  • Fix -Wattribute-warning in zfs_log_xvattr() #13528 #13575
  • Silence -Winfinite-recursion warning in luaD_throw() #13528 #13575
  • config: prune unused -Wno-bool-compare checks #13110
  • libtpool: -Wno-clobbered #13110
  • Remove sha1 hashing from OpenZFS, it's not used anywhere. #12895 #12902
  • Fix scrub resume from newly created hole.
  • Avoid memory copy when verifying raidz/draid parity #13613
  • Avoid memory copies during mirror scrub #13606
  • Fix and disable blocks statistics during scrub #13579
  • Avoid two 64-bit divisions per scanned block #13591
  • Several B-tree optimizations #13582
  • Several sorted scrub optimizations #13576
  • FreeBSD: Improve crypto_dispatch() handling #13563
  • Reduce ZIO io_lock contention on sorted scrub #13553
  • AVL: Remove obsolete branching optimizations #13540
  • More speculative prefetcher improvements #13452
  • Improve mg_aliquot math #13388
  • Improve log spacemap load time #12789
  • Add more control/visibility to spa_load_verify(). #13022
  • spa.c: Replace VERIFY(nvlist_(...) == 0) with fnvlist_ (#12678)
  • Avoid small buffer copying on write #12425
  • Remove refcount from spa_config_*() #12287
  • Scrub mirror children without BPs #13555

zfs-2.1.5

22 Jun 20:11
zfs-2.1.5
Compare
Choose a tag to compare

Supported Platforms

  • Linux: compatible with 3.10 - 5.18 kernels
  • FreeBSD: compatible with releases starting from 12.2-RELEASE

Changes

  • Remove install of zfs-load-module.service for dracut #13574
  • FreeBSD: Silence clang unused-but-set-variable
  • Improve sorted scan memory accounting #13537
  • Corrected edge case in uncompressed ARC->L2ARC handling #13375
  • Remove wrong assertion in log spacemap #13486 #13513
  • libzfs: Fail making a dataset handle gracefully #13077
  • libzfs: mount: don't leak mnt_param_t if mnt_func fails #12968
  • Reject zfs send -RI with nonexistent fromsnap #12574 #12575
  • Linux 5.18 compat: META #13527
  • autoconf: AC_MSG_CHECKING consistency #13529
  • Linux 5.19 compat: asm/fpu/internal.h #13529
  • Linux 5.19 compat: zap_flags_t conflict #13515
  • Linux 5.19 compat: bdev_start_io_acct() / bdev_end_io_acct() #13515
  • Linux 5.19 compat: aops->read_folio() #13515
  • Linux 5.19 compat: blkdev_issue_secure_erase() #13515
  • Linux 5.19 compat: bdev_max_secure_erase_sectors() #13515
  • Linux 5.19 compat: bdev_max_discard_sectors() #13515
  • Linux 5.18 compat: bio_alloc() #13515
  • Silence unused-but-set-variable warning #13507
  • zed: support subject as header in zed_notify_email() #13440
  • rpm: Keep debug symbols if configured with '--enable-debuginfo' #13500
  • FreeBSD: libspl: Add locking around statfs globals #13484
  • Standardize RHEL version check in packages #13501
  • Modified ncompress requirement in RPM to exclude RHEL9 #13480 #13490
  • zed: Take no action on scrub/resilver checksum errors #13499
  • zdb: Fix handling of nul termination in symlink targets #13482
  • automake: don't install /e/d/zfs or /e/z/zfs-functions +x #13496
  • Multiple dracut module install script cleanups #13010
  • Remove absolute paths to udev rules and binaries for dracut #13010
  • Make dracut fail if essential files cannot be installed #13010
  • Make better use of dracut functions when building initramfs #13010
  • Fix compiler warnings about zero-length arrays in inline bitops #13463 #13465
  • Add missing AC_MSG_RESULT(no) to configure #13454
  • abd_os: remove redundant refcount creation for abd_children #13429
  • Fix functions without a prototype #13421
  • FreeBSD: use zero_region instead of allocating a dedicated page #13406
  • autoconf: Fail when __copy_from_user_inatomic is a non-GPL symbol #13389
  • PPC get_user workaround #11958 #12590 #13367
  • Adding ZERO_PAGE detection #13199
  • autoconf: Pretend CONFIG_MODULES is always on
  • kbuild: unify modules(_install) for in-tree and external modules #10832 #13361
  • Strengthen Linux kernel capabilities detection #13351
  • zvol_wait: Ignore locked zvols #10662
  • FreeBSD: Implement hole-punching support #12458
  • module: zstd: check we don't leak symbols; regenerate symbol map #12988 #13209
  • man: zpool-import.8: -d -or -c #13437
  • Reduce dbuf_find() lock contention #13405
  • contrib: dracut: remove getargbool polyfill #13291
  • Add dracut.zfs.7 #13291
  • contrib: dracut: zfs-needshutdown: don't list #13291
  • contrib: dracut: zfs-{rollback,snapshot}-bootfs: order after key loading #13291
  • contrib: dracut: don't require essentials to be under the same encroot #13291
  • contrib: dracut: inline single-use import_pool, move single-use ask_for_password #13291
  • contrib: dracut: zfs-lib: remove find_bootfs #13291
  • contrib: dracut: zfs-lib: simplify ask_for_password #13291
  • contrib; dracut: flatten zfs-load-key, simplify zfs-env-bootfs #13291
  • contrib; dracut: centralise root= parsing, actually support root=s #13291
  • contrib: dracut: parse-zfs: stop pretending we support FILESYSTEM= #13291
  • contrib: dracut: parse-zfs: drop initqueue-finished for i/f #13291
  • contrib/dracut: zfs-lib: export_all: replace with inline zpool export -a #13093
  • Remove REMAKE_INITRD #12781
  • Python 3.10 fixes, part 2 #12045 #12673
  • Silence unused-but-set-variable warnings
  • module: zfs: freebsd: fix unused, remove argsused #12844
  • FreeBSD: remove unused variable
  • zvol: remove unused variable #12917
  • fm: remove unused variables #12917
  • zvol: remove unused variable #12917
  • module/zfs: vdev_removal: spa_vdev_remove_thread: remove unused variable #12187
  • module/zfs: vdev_indirect: vdev_indirect_repair: remove unused variable #12187
  • module/zfs: dbuf: dbuf_read_impl: remove unused variable #12187
  • module/zfs: arc: arc_hdr_realloc_crypt: remove unused variables #12187
  • libzfs: zfs_send: remove unused variable #12187
  • libzutil: zpool_find_config: remove unused variable #12187
  • Skip spacemaps reading in case of pool readonly import #9095 #12687
  • zfs: holds: dequadratify #13372 #13373
  • Linux 5.18 compat: replace __set_page_dirty_nobuffers #13325 #13380
  • Fix O_APPEND for Linux 3.15 and older kernels #13370 #13377
  • Linux 5.18 compat: kobj_type.default_attrs replaced with default_groups #13357
  • FreeBSD: Fix translation from ABD to physical pages.
  • Corrected oversight in ZERO_RANGE behavior #13329 #13338
  • Document zfs inherit -S's interaction with noninheritable properties #11894 #13335
  • Linux 5.17 compat: GENHD_FL_EXT_DEVT / GENHD_FL_NO_PART_SCAN #13294 #13297
  • FreeBSD: Return Mach error codes from VOP_(GET|PUT)PAGES #13311
  • FreeBSD: Parameterize ZFS_ENTER/ZFS_VERIFY_VP with an error code #13311
  • libzfs: import: zpool_clear_label: actually fail if clearing l2arc header fails #13304
  • libzfs: sendrecv: always cancel progress thread in zfs_send_one() #11560 #13284
  • Linux 5.18 compat: use address_space_operations->readahead #13278
  • Linux 5.18 compat: blkg_tryget is moved to private headers #13278
  • Linux 5.18 compat: replace genhd.h with blkdev.h includes #13251
  • Linux 5.18 compat: 4-argument bio_alloc() #13251
  • FreeBSD: Use NDFREE_PNBUF if available #13277
  • Export minimal zfs_refcount interfaces #12613
  • Default to zfs_dmu_offset_next_sync=1 #12746
  • etc/systemd/zfs-mount-generator: serialise, handle keylocation=http[s]:// #12138
  • libzfs: diff: stream_bytes: use fputc, %hho formats chars #12829
  • zfs, libzfs: diff: accept -h/ZFS_DIFF_NO_MANGLE, disabling path escaping #12829

zfs-2.1.4

23 Mar 20:58
zfs-2.1.4
Compare
Choose a tag to compare

Supported Platforms

  • Linux: compatible with 3.10 - 5.17 kernels
  • FreeBSD: compatible with releases starting from 12.2-RELEASE

Changes

  • zed: Fix mpath autoreplace on Centos 7 #13222
  • zed: Misc multipath autoreplace fixes #13023
  • Fix ACL checks for NFS kernel server #13221
  • Linux 5.16 compat: restore FSR and FSAVE #13210 #13236
  • module: freebsd: avoid a taking a destroyed lock in zfs_zevent bits #13220
  • FreeBSD: add missing replay check to an assert in zfs_xvattr_set #13219
  • get_key_material_https: removed bogus free() call #13198
  • Fix module build with -Werror #13194 #13196

zfs-2.1.3

11 Mar 00:59
zfs-2.1.3
Compare
Choose a tag to compare

Supported Platforms

  • Linux: compatible with 3.10 - 5.16 kernels
  • FreeBSD: compatible with releases starting from 12.2-RELEASE

Changes

  • Fix ENOSPC when unlinking multiple files from full pool #13172
  • ZTS: deadman_sync fix #12625
  • zfs: Fix a deadlock between page busy and the teardown lock #12828
  • Really zero the zero page #12569
  • ZTS: Fix import_devices_missing.ksh #13169
  • ZTS: Retry in import_rewind_config_changed.ksh #13119
  • ZTS: Modify receive-o-x_props_override.ksh exception #13167
  • ZTS: Move largest_pool_001_pos.ksh to Linux runfile #13166
  • Fix erroneous zstreamdump warning #13154
  • Fix FreeBSD reporting on reruns #13156
  • Fix cpu hotplug atomic sleep issue #12714
  • Fix directory detection in dkms.mkconf #11449 #13141
  • Linux 5.11 compat: x86 SIMD: fix kernel_fpu_{begin,end}() detection #13147
  • Fix Linux kernel directories detection #9935 #13096
  • Enable encrypted raw sending to pools with greater ashift #13067 #13074
  • Avoid dirtying the final TXGs when exporting a pool #13048 #13098
  • zfs-receive.8: properly unlight = in option setting #13101
  • zfs-receive.8: fix Op Fl x Ar encryption in running text #13101
  • Remove unneeded "extern inline" function declarations #13073
  • module: zfs: fix unused, remove argsused #12844
  • ZTS: Fix checkpoint_ro_rewind.ksh #13092
  • ZTS: Fix zpool_expand_001_pos #13091
  • Fix gcc warning in kfpu_begin() #13089
  • zpool-import.8: WARNING should be emphasised #13082
  • zpool-import.8: newpool is Ar, not Sy #13082
  • zpoolprops.7: document leaked #13081
  • Correct a typo in zfs-receive.8 #13072
  • ZTS: Fix zvol_misc_volmode test #13075
  • Add dataset_kstats_update.. to mmap read/write paths #12994 #13044
  • Receive checks should allow unencrypted child datasets #13033 #13076
  • Propagate KERNEL_* to *.spec #13046
  • Add support for $KERNEL_{CC,LD,LLVM} variables #13046
  • module: Makefile: simplify clean and install jobs #12979
  • module: Makefile: flatten subdir loop, use $PWD instead of pwd
  • Linux 5.16 compat: don't use XSTATE_XSAVE to save FPU state #13042 #13059
  • mount.zfs -o zfsutil leverages zfs_mount_at() #13021
  • dsl_dir_tempreserve_impl: remove unused deferred variable
  • OpenZFS 9166 - zfs storage pool checkpoint #13056
  • libfetch: unquote @LIBFETCH_SONAME@ subst #12922
  • contrib/initrd hooks: properly quote @LIBFETCH_SONAME@ #12835
  • Remove basename(1). Clean up/shorten some coreutils pipelines #12652
  • autoconf: allow Release to contain hyphen #12437
  • ZTS: Update enospc_002_pos test case #13060
  • Fix clearing set-uid and set-gid bits on a file when replying a write #13027
  • Add enumerated vdev names to 'zpool iostat -v' and 'zpool list -v' #12510 #13031
  • Report dnodes with faulty bonuslen #12720 #13014
  • RPM: Add missing BuildRequires for PAM component #13001
  • Clarify failmode=wait documentation #12907 #9395
  • README: Update OpenZFS website url #12939
  • man: speling #12911
  • ZTS: Fix enospc_002_pos.ksh again #12903
  • ZTS: Fix rollback_003_pos.ksh #12898
  • Update zts-report.py with additional tests #10489
  • Exclude zvol_misc_volmode for now #12733
  • ZTS: Add known exceptions #12624
  • ZTS: Minimize udev_wait in zvol_misc tests #12583
  • ZTS: Enable punch-hole tests on FreeBSD #12458
  • ZTS: Fix refreserv_raidz.ksh #12897
  • zfs-test/mmap_seek: fix build on musl #12891
  • ZTS: speed up rsend tests #12876
  • ZTS: rsend_007_pos failures #5665 #6086 #6087 #6446 #12876
  • zfs-share.8: document -l flag #12067
  • contrib/initrd: systemd-ask-password --no-tty before argument #12870
  • dracut: 90zfs: zfs-load-key: wait for key to appear for up to 10 seconds #12065 #12108
  • libzfs: add keylocation=https://, backed by fetch(3) or libcurl #9947 #11956
  • ZTS: cli_root/zfs_load-key: add separate key files #11976
  • zfsprops.7: Add note about comma-separation #12579
  • Add explicit timeout to test step #12999
  • Workaround Debian's fake System.map behavior #12862
  • Proper support for DESTDIR and INSTALL_MOD_PATH #12577
  • ZTS: alloc_class.ksh must wait for the process to exit #12873
  • ZTS: Avoid piping send directly to /dev/null #12872
  • ZTS: Fix zpool_reopen_[1-5] on Fedora 35 #12871
  • systemd: add weekly and monthly scrub timers #12193
  • Add init script to load keys #11659 #11662
  • Notify on UNAVAIL statechange #12629 #12630
  • Upstream: Add snapshot and zvol events #12416
  • zed: Add Pushover notifier #12012
  • zed-functions.sh: escape newline to produce valid json #13049
  • zed: send notification email by default #12806
  • Introduce a flag to skip comparing the local mac when raw sending #12981 #10523 #11221 #11294 #12594
  • Linux <4.8 compat: submit_bio() rw arg #13006
  • Linux 5.17 compat: PDE_DATA() renamed to pde_data() #13004 #12989
  • Linux 5.17 compat: dequeue_signal() takes a 4th argument #12989
  • Linux 5.17 compat: detect complete_and_exit() rename #12989
  • Add support for FALLOC_FL_ZERO_RANGE #12975
  • Linux 5.16 compat: Added mapping for iov_iter_fault_in_readable #12975
  • Linux 5.16 compat: Added add_disk check for return #12975
  • Linux 5.16 compat: Check slab.h for kvmalloc #12975
  • Fix handling of errors from dmu_write_uio_dbuf() on FreeBSD #12964
  • Avoid memory allocations in the ARC eviction thread #12985
  • libzfs_sendrecv: Fix leaked holds nvlist #12967
  • libzfs_sendrecv: Avoid extra avl_find #12967
  • FreeBSD: Fix zvol_cdev_open locking #13016
  • FreeBSD: Fix zvol_*_open() locking #12934
  • FreeBSD: Fix leaked strings in libspl mnttab #12961
  • linux: libzfs: mount: fix uninitialised flags #12954
  • FreeBSD: vfsops: use setgen for error case #12905
  • zfs_prune: reset sc.nr_to_scan #12908
  • Verify dRAID empty sectors #12857
  • FreeBSD: fix unpropagated error #12904
  • FreeBSD: fix world build after 143476c #12880
  • Fix error propagation from lzc_send_redacted #12766
  • freebsd/libshare: nfs: don't send SIGHUP to all processes #12067
  • Fix zvol_open() lock inversion #12863
  • FreeBSD: Update argument types for VOP_READDIR #12874
  • Reduce number of arc_prune threads #12896
  • FreeBSD: Provide correct file generation number #12851

zfs-2.0.7

23 Dec 22:01
zfs-2.0.7
Compare
Choose a tag to compare

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

16 Dec 00:29
zfs-2.1.2
Compare
Choose a tag to compare

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

22 Sep 23:18
zfs-2.0.6
Compare
Choose a tag to compare

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

16 Sep 17:56
zfs-2.1.1
Compare
Choose a tag to compare

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

02 Jul 18:34
zfs-2.1.0
Compare
Choose a tag to compare

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 to acltype=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

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