• zfs-2.2.6 baa5031456

    zfs-2.2.6 Stable

    tonyhutter released this 2024-09-04 20:31:50 +00:00 | 248 commits to master since this release

    Supported Platforms

    • Linux: compatible with 4.18 - 6.10 kernels
    • FreeBSD: compatible with releases starting from 12.2-RELEASE

    Changes

    • Enable L2 cache of all (MRU+MFU) metadata but MFU data only #16343 #16402
    • linux/zvol_os: fix zvol queue limits initialization #16454
    • linux/zvol_os: tidy and document queue limit/config setup #16400
    • ZTS: fix zfs_copies_006_pos test on Ubuntu 20.04 (#16409)
    • ZTS: fix history_007_pos test on Ubuntu 24.04 (#16410)
    • contrib: link zpool to zfs in bash-completion (#16376)
    • module/icp/asm-arm/sha2: enable non-SIMD asm kernels on armv5/6 #15623
    • module/icp/asm-arm/sha2: auto detect __ARM_ARCH #15557
    • Linux 6.10 compat: META #16466
    • linux/zvol_os.c: cleanup limits for non-blk mq case #16462
    • linux/zvol_os.c: Fix max_discard_sectors limit for 6.8+ kernel #16462
    • Fix null ptr deref when renaming a zvol with snaps and snapdev=visible (#16316)
    • Linux 6.10 compat: Fix zvol NULL pointer deference #16453
    • Linux 6.10 compat: fix rpm-kmod and builtin #16439 #16450
    • ZTS: Use /dev/urandom instead of /dev/random #16442
    • Linux 6.11: avoid passing "end" sentinel to register_sysctl() #16400
    • Linux 6.11: add compat macro for page_mapping() #16400
    • Linux 6.11: add more queue_limit fields with removed setters #16400
    • Linux 6.11: IO stats is now a queue feature flag #16400
    • Linux 6.11: first arg to proc_handler is now const #16400
    • Linux 6.11: get backing_dev_info through queue gendisk #16400
    • Linux 6.11: enable queue flush through queue limits #16400
    • ZTS: Add a test to verify that copy_file_range obeys RLIMIT_FSIZE
    • FreeBSD: Fix RLIMIT_FSIZE handling for block cloning
    • zfs: add bounds checking to zil_parse (#16308)
    • linux/zvol_os: fix SET_ERROR with negative return codes #16364
    • ZTS: fix io_uring test on RHEL 9 variants (#16411)
    Downloads
  • zfs-2.2.5 33174af151

    zfs-2.2.5 Stable

    tonyhutter released this 2024-08-06 20:02:06 +00:00 | 276 commits to master since this release

    Supported Platforms

    • Linux: compatible with 4.18 - 6.9 kernels
    • FreeBSD: compatible with releases starting from 12.2-RELEASE

    Changes

    • [2.2.5-only] Make 'rmmod zfs' work after zfs-2.2.4 (#16406)
    • ZTS: Make do_vol_test() more deterministic (#16379)
    • Linux 6.9: Fix UBSAN errors in sa.c (#16380) #16278 #16330
    • Fix long_free_dirty accounting for small files (#16264)
    • AUTHORS: refresh with recent new contributors (#16362)
    • FreeBSD: Use a statement expression to implement SET_ERROR() (#16284)
    • zdb: dump ZAP_FLAG_UINT64_KEY ZAPs properly (#16334)
    • vdev_open: clear async fault flag after reopen
    • zts: test single-disk pool resumes properly after disk pull
    • disable automatic dependency tracking for dkms builds #16221 #16241
    • Some improvements to metaslabs eviction #16214
    • Destroy ARC buffer in case of fill error #15665 #15802 #16216
    • Use memset to zero stack allocations containing unions #16135 #16206
    • zdb: bring crash handling over from ztest #16181
    • libspl_assert: always link -lpthread on FreeBSD #16168
    • Unbreak FreeBSD cross-build on MacOS broken in 051460b8b #16167
    • libspl/assert: use libunwind for backtrace when available #16140
    • libspl/assert: dump backtrace in assert #16140
    • libspl/assert: add lock around assertion output #16140
    • libspl/assert: show process/task details in assert output #16140
    • Only provide execvpe(3) when needed #15609
    • find_system_library: fix var cleanup when library not found #16140
    • abd_iter_page: rework to handle multipage scatterlists #16108
    • zts: add a debug option to get full test output #16096
    • zts: allow running a single test by name only #16088
    • Fix missing semicolon in trace_dbuf.h (#16281)
    • one-word manpage correction: snapshot->rollback (#16294)
    • Linux 6.9 compat: META (#16358)
    • ZTS: handle FreeBSD version numbers correctly (#16340)
    • ZTS: Fix redacted_send failures on FreeBSD #16224
    • Linux 5.16: use bdev_nr_bytes() to get device capacity
    • Linux 6.10: work harder to avoid kmem_cache_alloc reuse
    • Linux 6.10: rework queue limits setup
    • Linux 6.9: Fix UBSAN errors in zap_micro.c #16278 #16330
    • Linux 6.9: Call add_disk() from workqueue to fix zfs_allow_010_pos (#16282)
    • Linux 6.7 compat: detect if kernel defines intptr_t #16201
    • head_errlog: fix use-after-free #16272 #16273
    • Fix assertion in Persistent L2ARC #16202 #16207
    • FreeBSD: Add zfs_link_create() error handling #13215 #16138
    • ZAP: Fix leaf references on zap_expand_leaf() errors #12366 #16159
    • Fix ZIL clone records for legacy holes #16165
    • Fix scn_queue races on very old pools #16162
    • Slightly improve dnode hash #16131
    • Make more taskq parameters writable #16118
    • L2ARC: Cleanup buffer re-compression #16038
    • Refactor dbuf_read() for safer decryption #16104
    • Replace P2ALIGN with P2ALIGN_TYPED and delete P2ALIGN. #15940
    Downloads
  • zfs-2.2.4 2566592045

    zfs-2.2.4 Stable

    tonyhutter released this 2024-05-02 20:56:23 +00:00 | 324 commits to master since this release

    Supported Platforms

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

    Changes

    • Fix updating the zvol_htable when renaming a zvol #16127 #16128
    • Add prefetch property #15237 #15436
    • vdev probe to slow disk can stall mmp write checker #15839
    • Extend import_progress kstat with a notes field #15539
    • Add ashift validation when adding devices to a pool #15509
    • Fix arcstats for FreeBSD after zfetch support #16141
    • Add zfetch stats in arcstats #16094
    • Use ASSERT0P() to check that a pointer is NULL. #15225
    • GCC: Fixes for gcc 14 on Fedora 40 #16124 #16125
    • Python 3.12 deprecated python3-distutils #16126 #16129
    • zfs-kmod: fix empty rpm requires/conflicts #16121
    • ZTS: user_namespace_004.ksh avoid error in cleanup if unsupported #16114
    • Add newline to two zpool messages #16113
    • Do no use .cfi_negate_ra_state within the assembly on Arm64 #14965 #15784
    • Add the BTI elf note to the AArch64 SHA2 assembly #16086
    • AUTHORS: refresh with recent new contributors #16079
    • return NULL at end of send_progress_thread #16074
    • Fix locale-specific time #15878 #15879
    • Fix panics when truncating/deleting files #15983
    • vdev props comment and manpage should include zfsd and FreeBSD mentions #15968
    • Add slow disk diagnosis to ZED #15469
    • [2.2.4-only] Stub RAIDZ enums to prevent conflicts
    • zap_leaf: make l_hash[] variable length to silence UBSAN #15964
    • Give a better message from 'zpool get' with invalid pool name #15942
    • xdr: header cleanup #16047 #16051
    • Fix buffer underflow if sysfs file is empty #16028 #16035
    • ZTS: fix flakiness in cp_files_002_pos #16029
    • Fix option string, adding -e and fixing order #16008
    • freebsd: fix missing headers in distribution tarball #15963
    • Check for minimum partition size #15898
    • Add VERIFY0P() and ASSERT0P() macros. #15225
    • Clean up existing VERIFY*() macros. #15225
    • etc/init.d: decide which variant to use at build time. #15977
    • config/Substfiles.am: restrict to the dedicated list. #15980
    • man: move zfs_prepare_disk.8 to nodist_man_MANS #15979
    • Add support for zfs mount -R #16015
    • Linux 6.9 compat: blk_alloc_disk() now takes two args #16027 #16033
    • Linux 6.9 compat: bdev handles are now struct file #16027 #16033
    • vdev_disk: clean up spa/bdev mode conversion #15995
    • Linux 5.18+ compat: Detect filemap_range_has_page #16034
    • udev: correctly handle partition #16 and later #15904 #15970
    • zvols: prevent overflow of minor device numbers #16006
    • Linux 6.8 compat: META (#16099)
    • bdev_discard_supported: understand discard_granularity=0
    • L2ARC: Relax locking during write #16040
    • Small fix to prefetch ranges aggregation #16072
    • Remove db_state DB_NOFILL checks from syncing context #16057
    • Speculative prefetch for reordered requests #16022
    • Fix read errors race after block cloning #16052
    • Improve dbuf_read() error reporting #16042
    • BRT: Check pool clone stats in more tests #16007
    • BRT: Fix tests to work on non-empty pools #16007
    • BRT: Fix holes cloning. #15994 #16007
    • BRT: Skip getting length in brt_entry_lookup() #15950
    • BRT: Make BRT block sizes configurable #15967
    • BRT: Relax brt_pending_apply() locking #15955
    • ZAP: Massively switch to _by_dnode() interfaces #15951
    • BRT: Skip duplicate BRT prefetches #15941
    • ZAP: Some cleanups/micro-optimizations #15976
    • BRT: Change brt_pending_tree sorting order #15954
    • Update resume token at object receive. #15927
    • Linux: Cleanup taskq threads spawn/exit #15873
    • Refactor dmu_prefetch(). #15076
    • ZIL: Update Linux tracing after #15635 #15730
    • ZIL: Improve next log block size prediction #15635
    • ZIO: Optimize zio_flush() #15515
    • ZIL: Detect single-threaded workloads #15381
    • zvol_os: fix compile with blk-mq on Linux 4.x #16069
    • zvol_os: fix build on Linux <3.13 #16062
    • zvol: use multiple taskq #15992
    • vdev_disk: fix alignment check when buffer has non-zero starting offset
    • vdev_disk: ensure trim errors are returned immediately
    • vdev_disk: don't touch vbio after its handed off to the kernel
    • Fix corruption caused by mmap flushing problems #15933 #16019
    • vdev_disk: default to classic submission for 2.2.x
    • abd_iter_page: don't use compound heads on Linux <4.5 #15533 #15588
    • vdev_disk: use bio_chain() to submit multiple BIOs #15533 #15588
    • vdev_disk: add module parameter to select BIO submission method #15533 #15588
    • vdev_disk: rewrite BIO filling machinery to avoid split pages #15533 #15588
    • vdev_disk: make read/write IO function configurable #15533 #15588
    • vdev_disk: reorganise vdev_disk_io_start #15533 #15588
    • vdev_disk: rename existing functions to vdev_classic_* #15533 #15588
    • abd: add page iterator #15533 #15588
    • linux 5.4 compat: page_size() #15533 #15588
    • Linux 6.8 compat: use splice_copy_file_range() for fallback #15930 #15931
    Downloads
  • zfs-2.1.15 fb6d532066

    zfs-2.1.15 Stable

    tonyhutter released this 2024-02-26 22:16:00 +00:00 | 1693 commits to master since this release

    Supported Platforms

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

    Changes

    • Avoid calling rw_destroy() on uninitialized rwlock #13976
    • Fix GCC 12 compilation errors #14150
    • libzfs_sendrecv: Style pass on send_print_verbose #12967
    • Linux 6.7 compat: META #15833
    • Linux 6.6 compat: META #15520
    • ZTS: Debug zfs_share_concurrent_shares failure #15379
    • tests: zfs_share_concurrent_shares: don't use log_musts in subprocesses #13259
    • Fix the FreeBSD userspace build (#15716)
    • [zfs-2.1.15] Update ABI files
    • ZTS: Fix zfs_load-key failures on F39 #15534 #15550
    • LUA: Backport CVE-2020-24370's patch #15847
    • Add 'zpool status -e' flag to see unhealthy vdevs #15769
    • zpool: Add slot power control, print power status #15662
    • zed: fix typo in variable ZED_POWER_OFF_ENCLOUSRE_SLOT_ON_FAULT #15651
    • ZTS: Add dirty dnode stress test #15608
    • ZTS: Fix 'could not unmount datasets' on Alma 9 (#15542)
    • zed: misc vdev_enc_sysfs_path fixes #15462
    • Add zfs_prepare_disk script for disk firmware install #15243
    • Linux 6.8 compat: replace MAX_ORDER define #15805
    • Linux 6.8 compat: implement strlcpy fallback #15805
    • Linux 6.8 compat: update for new bdev access functions #15805
    • Linux 6.8 compat: make test functions static #15805
    • Linux 6.7 compat: zfs_setattr fix atime update #15762 #15773
    • Linux 6.5 compat: check BLK_OPEN_EXCL is defined #15692
    • linux 6.7 compat: rework shrinker setup for heap allocations
    • linux 6.7 compat: handle superblock shrinker member change
    • linux 6.7 compat: use inode atime/mtime accessors
    • linux 6.7 compat: simplify current_time() check
    • Linux 6.6 compat: fix configure error with clang (#15558)
    • Linux 6.6 compat: fsync_bdev() has been removed in favor of sync_blockdev() #15263
    • Linux 6.6 compat: generic_fillattr has a new u32 request_mask added at arg2 #15263
    • Linux 6.6 compat: use inode_get/set_ctime*(...) #15263 #15257
    • Workaround UBSAN errors for variable arrays #15510
    • FreeBSD: catch up to __FreeBSD_version 1400093 #15036
    • spa: Let spa_taskq_param_get()'s addition of a newline be optional #15719
    • spa: Fix FreeBSD sysctl handlers #15719
    • freebsd: fix compile for spa_taskq_read/spa_taskq_write params
    • [2.1] compat: add check for kernel_neon_* availability
    • spa: make read/write queues configurable
    • libshare: nfs: pass through ipv6 addresses in bracket notation #11939
    • ZTS: Disable io_uring test on CentOS 9 #15636
    • Report ashift of L2ARC devices in zdb #15331
    • zfs-dkms: fix shell-init error message #15576
    • Fix dkms installation of deb packages created with Alien. #15415
    Downloads
  • zfs-2.2.3 c883088df8

    zfs-2.2.3 Stable

    tonyhutter released this 2024-02-22 17:07:41 +00:00 | 410 commits to master since this release

    Supported Platforms

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

    Changes

    • ZTS: Skip cross-fs bclone tests if FreeBSD < 14.0 #15901
    • [zfs-2.2.3] ZTS: Use correct bclone module param name on FreeBSD
    • zdb: Fix false leak report for BRT objects #15882
    • Add Ntfy notification support to ZED #15584
    • BRT: Fix slop space calculation with block cloning #15874
    • zfs list: add '-t fs' and '-t vol' options (#15883) #15864
    • [zfs-2.2.3] Enable zfs_bclone_enabled on cp_files tests
    • LUA: Backport CVE-2020-24370's patch #15847
    • Add 'zpool status -e' flag to see unhealthy vdevs #15769
    • zed: fix typo in variable ZED_POWER_OFF_ENCLOUSRE_SLOT_ON_FAULT #15651
    • Improve performance for zpool trim on linux #15843
    • BRT: Fix FICLONE/FICLONERANGE shortened copy #15728 #15842
    • Fix the FreeBSD userspace build (#15716)
    • zpool: Add slot power control, print power status #15662
    • zed: misc vdev_enc_sysfs_path fixes #15462
    • ZTS: Add dirty dnode stress test #15608
    • Linux 6.8 compat: handle mnt_idmap user_namespace change #15805
    • Linux 6.8 compat: fix inode permission tests #15805
    • Linux 6.8 compat: replace MAX_ORDER define #15805
    • Linux 6.8 compat: implement strlcpy fallback #15805
    • Linux 6.8 compat: update for new bdev access functions #15805
    • Linux 6.8 compat: make test functions static #15805
    • Linux 6.7 compat: META #15833
    • Don't assert mg_initialized due to device addition race #15818
    • Update man pages to time(1) from time(2) #15823
    • ZTS: Allow longer run time for zdb_args_pos #15826
    • Move nodes into correct subgraphs #15828
    • zpool wait: print timestamp before the header #15825
    • Update vdev devid and physpath if changed between imports #15816
    • ZTS: Update deprecated Github Action version numbers #15820
    • Switch to CodeQL to detect prohibited function use #15819 #14134
    • ZTS: Apply small changes for speeding up the tests #15811
    • FreeBSD: Fix bootstrapping tools under Linux/musl #15780
    • linux spl: fix typo in top comment of spl-condvar.c #15782
    • Make sure all necessary RPM path macros are defined #15756
    • Make spl_kmem_cache size check consistent #15757
    • Add path handling for aux vdevs in label_path #15737
    • Extend aux label to add path information #15737
    • fix: Uber block label not always found for aux vdevs #15737
    • Fix "out of memory" error #15747
    • fix: preserve linux kmod signature in zfs-kmod rpm spec #15744
    • fix(mount): do not truncate shares not zfs mount #15607 #15660
    • Fix a potential use-after-free in zfs_setsecattr() #15752
    • Linux: Defer loading the object set in zfs_setattr() #15752
    • Make zdb -R scale less poorly #15726
    • Stop wasting time on malloc in snprintf_zstd_header #15721
    • Fix file descriptor leak on pool import. #15630
    • ZTS: Apply zfs_bclone_enabled to bclone tests #15796
    • fix: variable type with zfs-tests/cmd/clonefile.c #15783
    • Fix cloning into mmaped and cached file. #15772
    • ZTS: Test for clone, mmap and write for block cloning #15717
    • Enable block_cloning tests on FreeBSD #15749
    • Block cloning tests. #15631
    • Test LWB buffer overflow for block cloning #15672
    • ZTS: Add test cases for block cloning replay #15614
    • ZTS: block_cloning: Use numeric sort for get_same_blocks #15614
    • Autotrim High Load Average Fix #15781
    • Linux 6.7 compat: zfs_setattr fix atime update #15762 #15773
    • compact: workaround for GPL-only symbols on riscv from Linux 6.2 #14974 #15627
    • spa: Let spa_taskq_param_get()'s addition of a newline be optional #15719
    • spa: Fix FreeBSD sysctl handlers #15719
    • freebsd: fix compile for spa_taskq_read/spa_taskq_write params
    • Fix livelist assertions for dedup and cloning #15732
    • Improve block sizes checks during cloning #15724 #15735
    • Linux 6.2 compat: add check for kernel_neon_* availability #15711 #14555
    • Don't panic on unencrypted block in encrypted dataset #15677
    • dbuf: Set dr_data when unoverriding after clone #15654 #15656
    • dbuf: Handle arcbuf assignment after block cloning #15653
    • DMU: Fix lock leak on dbuf_hold() error #15644
    • BRT: Limit brt_vdev_dump() to only one vdev #15625
    • ZIL: Remove 128K into 2x68K LWB split optimization #15634
    • zdb: Dump encrypted write and clone ZIL records #15629
    • Allow block cloning across encrypted datasets #15544
    • ZIL: Do not clone blocks from the future #15617
    • ZIL: Remove TX_CLONE_RANGE replay for ZVOLs. #15612
    • ZIO: Add overflow checks for linear buffers #15553
    • ZIL: Assert record sizes in different places #15517
    • L2ARC: Restrict write size to 1/4 of the device #15519
    • Linux: Reclaim unused spl_kmem_cache_reclaim #15507
    • FreeBSD: Optimize large kstat outputs #15495
    • Update the kstat dataset_name when renaming a zvol #15482 #15486
    • ABD: Be more assertive in iterators #15428
    • spa: make read/write queues configurable
    • Linux 6.5 compat: check BLK_OPEN_EXCL is defined #15692
    • ZTS: Disable io_uring test on CentOS 9 #15636
    • linux 6.7 compat: rework shrinker setup for heap allocations
    • linux 6.7 compat: handle superblock shrinker member change
    • linux 6.7 compat: use inode atime/mtime accessors
    • linux 6.7 compat: simplify current_time() check
    Downloads
  • zfs-2.1.14 d99134be83

    zfs-2.1.14 Stable

    tonyhutter released this 2023-11-30 23:33:57 +00:00 | 1738 commits to master since this release

    Supported Platforms

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

    Changes

    Note: This release contains an important fix for a data corruption bug. Full details are in the issue (https://github.com/openzfs/zfs/issues/15526) and bug fix (https://github.com/openzfs/zfs/pull/15571). There's also a developer's bug summary that gives a good overview. We recommend everyone either upgrade to 2.2.2 or 2.1.14 to get the fix. The bug can cause data corruption due to an incorrect dirty dnode check. This bug is very hard to hit, and really only came to light due to changes in cp in coreutils 9.x. It's extremely unlikely that the bug was ever hit on EL7 or EL8 when running cp since they all use coreutils 8.x which performs file copies differently.

    Updated (12/1/23):
    EL9 was previously vulnerable since it uses coreutils 8.32 with the SEEK_DATA/SEEK_HOLE patches backported from coreutils 9.x.

    • copy-builtin: add hooks with sed/>> #13316
    • Zpool can start allocating from metaslab before TRIMs have completed #15395
    • dnode_is_dirty: check dnode and its data for dirtiness #15571 #15526
    Downloads
  • zfs-2.2.2 494aaaed89

    zfs-2.2.2 Stable

    tonyhutter released this 2023-11-30 23:15:35 +00:00 | 501 commits to master since this release

    Supported Platforms

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

    Changes

    Note: This release contains an important fix for a data corruption bug. Full details are in the issue (https://github.com/openzfs/zfs/issues/15526) and bug fix (https://github.com/openzfs/zfs/pull/15571). There's also a developer's bug summary that gives a good overview. We recommend everyone either upgrade to 2.2.2 or 2.1.14 to get the fix. The bug can cause data corruption due to an incorrect dirty dnode check. This bug is very hard to hit, and really only came to light due to changes in cp in coreutils 9.x. It's extremely unlikely that the bug was ever hit on EL7 or EL8, when running cp since they all use coreutils 8.x which performs file copies differently.

    Updated (12/1/23):
    EL9 was previously vulnerable since it uses coreutils 8.32 with the SEEK_DATA/SEEK_HOLE patches backported from coreutils 9.x.

    • FreeBSD: Fix ZFS so that snapshots under .zfs/snapshot are NFS visible #15563
    • ZIL: Call brt_pending_add() replaying TX_CLONE_RANGE #15603
    • zdb: fix printf() length for uint64_t devid #15606
    • Linux 6.6 compat: fix configure error with clang (#15558)
    • zfs-dkms: fix shell-init error message #15576
    • FreeBSD: Fix the build on FreeBSD 12 #15551
    • dmu_buf_will_clone: fix race in transition back to NOFILL #15566 #15526
    • zdb: Fix zdb '-O|-r' options with -e/exported zpool #15532
    • zdb: show BRT statistics and dump its contents #15541
    • brt: lift internal definitions into _impl header #15541
    • ZTS: Fix zfs_load-key failures on F39 #15534 #15550
    • ZIL: Do not encrypt block pointers in lr_clone_range_t #15543 #15513
    • dnode_is_dirty: check dnode and its data for dirtiness #15571 #15526
    • Revert "Tune zio buffer caches and their alignments"
    Downloads
  • zfs-2.2.1 55dd24c4cc

    zfs-2.2.1 Stable

    tonyhutter released this 2023-11-21 21:20:57 +00:00 | 516 commits to master since this release

    Supported Platforms

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

    Changes

    Note: We recommend that anyone running zfs-2.2.0 to please update to this release. Gentoo users have identified a block cloning bug (https://github.com/openzfs/zfs/issues/15526) that can result in data corruption in zfs-2.2.0. To workaround this, zfs-2.2.1 disables block cloning by default (see https://github.com/openzfs/zfs/pull/15529 and 479dca51c6). Users running the 2.1.x branch or older are unaffected, as block cloning is a 2.2.x-only feature.

    • ZTS: Fix 'could not unmount datasets' on Alma 9 (https://github.com/openzfs/zfs/pull/15542)
    • zfs-2.2.1: Disable block cloning by default (479dca51c6)
    • Add a tunable to disable BRT support. #15529
    • Packaging: Auto-generate changelog during configure (#15528)
    • Linux 6.6 compat: META #15520
    • Workaround UBSAN errors for variable arrays #15510
    • ZTS: Test for all known zpool feature sets #15505
    • Update zpool-features.7 for grub2 compatibility list updates #15505
    • Workaround to allow openzfs-zfs-dkms install on Ubuntu #15503
    • Linux: reject read/write mapping to immutable file only on VM_SHARED #15344
    • Fix accounting error for pending sync IO ops in zpool iostat #15478
    • Linux 6.6 compat: fix implicit conversion error with debug build #15489
    • Remove obsolete_counts from grub2 compatibility list #15499
    • Fix dkms installation of deb packages created with Alien. #15415
    • Add all read-only compatible zpool features to grub2 compatibility #15459
    • Unify arc_prune_async() code #15456
    • Tune zio buffer caches and their alignments #15452
    • DMU: Do not pre-read holes during write #15371
    • Linux 6.6 compat: fsync_bdev() has been removed in favor of sync_blockdev() #15263
    • Linux 6.6 compat: generic_fillattr has a new u32 request_mask added at arg2 #15263
    • Linux 6.6 compat: use inode_get/set_ctime*(...) #15263 #15257
    • Read prefetched buffers from L2ARC #15451
    • Add mutex_enter_interruptible() for interruptible sleeping IOCTLs #15360
    • Revert "zvol: Temporally disable blk-mq" #15439
    • zvol: Remove broken blk-mq optimization #15351
    • "ARC prefetch metadata accesses:" appears twice in the output. #15427
    • Trust ARC_BUF_SHARED() more #15397
    • Remove lock from dsl_pool_need_dirty_delay() #15390
    • run-zts test procfs/pool_state failed with uncorrectable I/O failure #15364
    • Properly pad struct tx_cpu to cache line #15402
    • Fix typo in tests/zfs-tests/tests/functional/cli_user/misc/misc.cfg #15417
    • FreeBSD: taskq: Remove unused declaration #15416
    • Set spa_ccw_fail_time=0 when expanding a vdev. #15405
    • Fix ZED auto-replace for VDEVs using by-id paths #15363
    • Add zfs_prepare_disk script for disk firmware install #15243
    • Large sync writes perform worse with slog #14378
    • FreeBSD: Improve taskq wrapper #15356
    • Fix block cloning between unencrypted and encrypted datasets #15464 #15465
    Downloads
  • zfs-2.2.0 95785196f2

    zfs-2.2.0 Stable

    behlendorf released this 2023-10-12 23:30:16 +00:00 | 307 commits to zfs-2.2-release since this release

    Supported Platforms

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

    New Features

    • Block cloning (#13392) - Block cloning is a facility that allows a file (or parts of a file) to be "cloned", that is, a shallow copy made where the existing data blocks are referenced rather than copied. Later modifications to the data will cause a copy of the data block to be taken and that copy modified. This facility is used to implement "reflinks" or "file-level copy-on-write". Many common file copying programs, including newer versions of /bin/cp on Linux, will try to create clones automatically.

    • Linux container support (#12209, #14070, #14097, #12263) - Added support for Linux-specific container interfaces such as renameat(2), support for overlayfs, idmapped mounts in a user namespace, and namespace delegation support for containers.

    • Scrub error log (#12812, #12355) - zpool status will report all filesystems, snapshots, and clones affected by a shared corrupt block. zpool scrub -e can be used to scrub only the known damaged blocks in the error log to perform a fast, targeted repair when possible.

    • BLAKE3 checksums (#12918) - BLAKE3 is a modern cryptographic hash algorithm focused on high performance. It is much faster than sha256, sha512, and can be up 3x faster than Edon-R. BLAKE3 is the recommended secure checksum.

    • Corrective "zfs receive" (#9372) - A new type of zfs receive which can be used to heal corrupted data in filesystems, snapshots, and clones when a replica of the data already exists in the form of a backup send stream.

    • Vdev properties (#11711) - Provides observability of individual vdevs in a programmatic way.

    • Vdev and zpool user properties (#11680) - Lets you set custom user properties on vdevs and zpools, similar to the existing zfs dataset user properties.

    Performance

    • Fully adaptive ARC (#14359) - A unified ARC which relaxes the artificial limits imposed by both the MRU/MFU distribution and data/metadata distinction. This allows the ARC to better adjust to highly dynamic workloads and minimizes the need for manual workload-dependent tuning.

    • SHA2 checksums (#13741) - Optimized SHA2 checksum implementation to use hardware acceleration when available.

    • Edon-R checksums (#13618) - Reworked the Edon-R variants and optimized the code to make several minor speed ups.

    • ZSTD early abort (#13244) - When using the zstd compression algorithm, data that can not be compressed is detected quickly, avoiding wasted work.

    • Prefetch improvements (#14603, #14516, #14402, #14243, #13452) - Extensive I/O prefetching analysis and optimization.

    • General optimization (#14121, #14123, #14039, #13680, #13613, #13606, #13576, #13553, #12789, #14925, #14948) - Numerous performance improvements throughout.

    Additional Information

    • Documentation - OpenZFS documentation for Linux and FreeBSD.

    • Change log - Complete v2.1.0 - v2.2.0 change log

      Thanks to 202 contributors
       git shortlog -s  zfs-2.1.0..zfs-2.2.0
       639  Ahelenia Ziemiańska
         1  Aidan Harris
         5  Akash B
        10  Alan Somers
         1  Alejandro Colomar
         2  Alek Pinchuk
         4  Aleksa Sarai
         8  Alexander Lobakin
       126  Alexander Motin
        22  Allan Jude
         2  Alyssa Ross
        23  Ameer Hamza
         1  Andrea Gelmini
         2  Andrea Righi
         1  Andreas Vögele
         4  Andrew Innes
         1  Andrew Turner
         3  Andrew Walker
         4  Andriy Gapon
         1  Anton Gubarkov
         6  Antonio Russo
         1  Armin Wehrfritz
         3  Arshad Hussain
         1  Arun KV
        22  Attila Fülöp
         1  Benedikt Neuffer
         1  Brandon Thetford
         8  Brian Atkinson
       183  Brian Behlendorf
        16  Brooks Davis
         1  Charles Suh
         3  Chris Lindee
         1  Chris Zubrzycki
        12  Christian Schwarz
         6  Chunwei Chen
         1  Clemens Lang
        26  Coleman Kane
         3  Colm Buckley
         2  D. Ebdrup
        40  Damian Szuberski
         1  Damiano Albani
         1  Daniel Berlin
         1  Daniel Hiepler
         1  Daniel Kolesa
         1  Daniel Reichelt
         1  Daniel Stevenson
         1  David Hedberg
         1  Dimitri John Ledkov
         3  Dimitry Andric
         1  Dmitri John Ledkov
         3  Don Brady
         1  Doug Rabson
         1  Edmund Nadolski
         1  Ethan Coe-Renner
         6  Fedor Uporov
         1  Felix Dörre
         4  Finix Yan
         1  Francesco Mazzoli
        36  George Amanakis
        20  George Melikov
         7  George Wilson
         2  Georgy Yakovlev
         1  Gian-Carlo DeFazio
         4  Gionatan Danti
         1  Glenn Washburn
         1  Gordon Bergling
         1  Graham Perrin
         3  Gregory Bartholomew
         1  Han Gao
         1  Harald van Dijk
         1  Harry Sintonen
         1  Herb Wartens
         2  InsanePrawn
         1  Jason Harmening
         1  Jason King
         1  Jeremy Visser
         4  Jitendra Patidar
         1  John Poduska
         8  John Wren Kennedy
         1  Jonathon Fernyhough
        24  Jorgen Lundman
         1  José Luis Salvador Rufo
         1  Julian Brunner
         6  Justin Gottula
         1  Justin Hibbits
         2  Ka Ho Ng
         3  Kay Pedersen
         1  Kevin Bowling
         4  Kevin Jin
         1  Kristof Provost
         1  Krzysztof Piecuch
         3  Kyle Evans
         1  Laevos
         2  Laura Hild
         1  Laurențiu Nicola
         1  Lauri Tirkkonen
         1  Luís Henriques
         2  Manoj Joseph
         1  Marcel Menzel
         1  Marcin Skarbek
         4  Mariusz Zaborski
        20  Mark Johnston
         1  Mark Maybee
         7  Martin Matuška
         2  Martin Rüegg
        23  Mateusz Guzik
         6  Mateusz Piotrowski
         1  Matt Fiddaman
        12  Matthew Ahrens
         1  Matthew Thode
         1  Matthias Blankertz
         1  Max Zettlmeißl
         1  Michael Franzl
         1  Michal Vasilek
         3  Mike Swanson
         1  Minsoo Choo
         1  Mohamed Tawfik
         1  Nathaniel Wesley Filardo
         1  Neal Gompa (ニール・ゴンパ)
         1  Nick Terrell
         2  Olaf Faaland
         1  Pablo Correa Gómez
         1  Palash Gandhi
        31  Paul Dagnelie
         5  Paul Zuchowski
         1  Pavel Snajdr
        21  Pawel Jakub Dawidek
         2  Peter Levine
         1  Phil Kauffman
         1  Philipp Riederer
         2  Ping Huang
         1  Piotr Kubaj
         2  Piotr P. Stefaniak
         2  Prakash Surya
         1  Rafael Kitover
         1  Reno Reckling
         2  Riccardo Schirone
        83  Rich Ercolani
         1  Richard Laager
       197  Richard Yao
        40  Rob Norris
        11  Rob Wing
         1  Roberto Ricci
         1  Romain Dolbeau
         1  Ryan Hirasaki
         1  Ryan Lahfa
        88  Ryan Moeller
         1  Sam Hathaway
         1  Sam James
         1  Samuel Wycliffe
         1  Samuel Wycliffe J
         1  Satadru Pramanik
         5  Savyasachee Jha
         1  Scott Colby
         1  Sean Eric Fagan
        11  Serapheim Dimitropoulos
         1  Shaan Nobee
         4  Stoiko Ivanov
         1  Stéphane Lesimple
         2  Teodor Spæren
         1  TerraTech
         1  Till Maas
         1  Timothy Day
        37  Tino Reichardt
         2  Tomohiro Kusumi
        25  Tony Hutter
         1  Tony Nguyen
         6  Toomas Soome
         1  Toyam Cox
         1  Trevor Bautista
        16  Umer Saleem
         8  Val Packett
         1  Valmiky Arquissandas
         3  Vince van Oosten
         1  Violet Purcell
         1  Vipin Kumar Verma
         1  Volker Mauel
         2  Václav Skála
         9  WHR
         1  Walter Huf
         1  Will Andrews
         1  Windel Bouwman
         1  Wojciech Małota-Wójcik
         2  Xinliang Liu
         1  Yann Collet
         1  Yanping Gao
        13  Youzhong Yang
         4  Yuri Pankov
         1  Zach Dykstra
         1  Zhu Chuang
         1  buzzingwires
         2  chrisrd
         1  grembo
         1  hedong zhang
         1  hping
         1  illiliti
         1  jokersus
         1  jumbi77
         1  naivekun
         1  ofthesun9
         1  omni
         1  Érico Nogueira
      
    • 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.

      New module options
      Removed module options
      Modified module options
    Downloads
  • zfs-2.2.0-rc5 2407f30bda

    zfs-2.2.0-rc5 Pre-Release

    behlendorf released this 2023-10-07 16:15:21 +00:00 | 570 commits to master since this release

    Supported Platforms

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

    Changes

    • ZIL: Reduce maximum size of WR_COPIED to 7.5K #15353
    • rpm: Fix make rpm on Debian/Ubuntu #15355 #15365
    • import: require force when cachefile hostid doesn't match on-disk #15290
    • tests: add tests for zpool import behaviour when hostid changes #15290
    • zfsconcepts: add description of block cloning #15362
    • Reduce number of metaslab preload taskq threads. #15319
    • CI: add FreeBSD build with Cirrus CI #15332
    • tests/block_cloning: sync before write in fallback test #15359
    • ARC: Drop different size headers for crypto #15293 #15347
    • ARC: Remove b_bufcnt/b_ebufcnt from ARC headers #15350
    • ARC: Remove b_cv from struct l1arc_buf_hdr #15340
    • Add BTI landing pads to the AArch64 SHA2 assembly #14862 #15339
    • Add '-u' - nomount flag for zfs set #15322
    • Improve the handling of sharesmb,sharenfs properties #15240
    • Update the behavior of mountpoint property #15240
    • contrib: debian: drop bashcompletion mangling after install #15304 #15304
    • contrib: debian: switch to dh-sequence-dkms #15304
    • contrib: bash_completion.d: make install destination vendor dependent #15304
    • Fix invalid pointer access in trace_dbuf.h #15333
    • Report ashift of L2ARC devices in zdb #15331
    • Restrict short block cloning requests #15321
    • Tweak rebuild in-flight hard limit #15324
    • Fix ENOSPC for extended quota #15312
    • Don't allocate from new metaslabs #15307 #15308
    • Reduce trim min size even lower for tests to reduce flakiness #15315
    • ZTS: Fix introduced test bug in block_cloning_copyfilerange #15316
    • ZTS: Add additional exceptions #15306
    • Set timeout before creating pool in test #15309
    • Invoke zdb by guid to avoid import errors #15298
    • ZIL: Avoid dbuf_read() in ztest_get_data() #15301
    • tests/block_cloning: try harder to stay on same txg in fallback test #15303
    • status: report pool suspension state under failmode=continue #15297
    • Fix occasional rsend test crashes #15273
    • cmd: add 'help' subcommand to zpool and zfs #15288
    • Fix incorrect expected error in ztest #15295
    • Fix l2arc_apply_transforms ztest crash #15177 #15248
    • tests: install missing PAM tests #15291
    • ZIL: Fix potential race on flush deferring. #15278
    • Retire z_nr_znodes #15274
    • zed: Allow autoreplace and fault LEDs for removed vdevs #15281
    • check-zstd-symbols: also ignore _pfx symbols #15282 #15284
    • Remove implication that child disks aren't vdevs in zpoolconcepts(7) #15247
    • update max_variance limit in zdb_block_size_histogram test for CI #15252
    • Update the MOS directory on spa_upgrade_errlog() #15279 #15277
    • Linux 6.5 compat: META #15265
    • Linux 6.5 compat: spl: properly unregister sysctl entries #15239
    • Linux 6.5 compat: safe cleanup in spl_proc_fini() #15234 #15235
    • Linux 6.5 compat: Use copy_splice_read instead of filemap_splice_read #15164
    • Linux 6.5 compat: replace generic_file_splice_read with filemap_splice_read #15155
    • Linux 6.5 compat: register_sysctl_table removed #15138
    • Revert "Linux 6.5 compat: register_sysctl_table removed" #15134
    • Linux 4.20 compat: wrapper function for iov_iter type access #15100
    • Linux 6.4 compat: iter_iov() function now used to get old iov member #15100
    • Linux 6.5 compat: blkdev changes #15099
    • Linux 6.5 compat: use disk_check_media_change when it exists #15101
    • Linux 6.5 compat: register_sysctl_table removed #15098
    • Add more constraints for block cloning. #15251
    Downloads