Notable upstream pull request merges:
#15892 -multiple Fast Dedup: Introduce the FDT on-disk format and feature flag
#15893 -multiple Fast Dedup: “flat” DDT entry format
#15895 -multiple Fast Dedup: FDT-log feature
#162396be8bf555 zpool: Provide GUID to zpool-reguid(8) with -g
#16277 -multiple Fast Dedup: prune unique entries
#163165807de90a Fix null ptr deref when renaming a zvol with snaps and snapdev=visible
#1634377a797a38 Enable L2 cache of all (MRU+MFU) metadata but MFU data only
#1644683f359245 FreeBSD: fix build without kernel option MAC
#16449963e6c9f3 Fix incorrect error report on vdev attach/replace
#16505b10992582 spa_prop_get: require caller to supply output nvlist
Obtained from: OpenZFS
OpenZFS commit: b109925820
Notable upstream pull request merges:
#158175536c0dee Sync AUX label during pool import
#15889c7ada64bb ddt: dedup table quota enforcement
#1589062e7d3c89 ddt: add support for prefetching tables into the ARC
#15894e26b3771e spa_preferred_class: pass the entire zio
#15894d54d0fff3 dnode: allow storage class to be overridden by object type
#1619755427add3 Several improvements to ARC shrinking
#16217 -multiple JSON output for various zfs and zpool subcommands
#1624824e6585e7 libzfs.h: Set ZFS_MAXPROPLEN and ZPOOL_MAXPROPLEN
to ZAP_MAXVALUELEN
#162649dfc5c4a0 Fix long_free_dirty accounting for small files
#16268ed0db1cc8 Make txg_wait_synced conditional in zfsvfs_teardown,
for FreeBSD
#16288d60debbf5 Fix sa_add_projid to lookup and update SA_ZPL_DXATTR
#16308ec580bc52 zfs: add bounds checking to zil_parse
#16310c21dc56ea Fix zdb_dump_block for little endian
#163157ddc1f737 zil: add stats for commit failure/fallback
#16326b0bf14cdb abd: lift ABD zero scan from zio_compress_data()
to abd_cmp_zero()
#16337c8184d714 Block cloning conditionally destroy ARC buffer
#16338dbe07928b Add support for multiple lines to the sharenfs property
for FreeBSD
#163741a3e32e6a Cleanup DB_DNODE() macros usage
#16374ed87d456e Skip dnode handles use when not needed
#16346fb6d8cf22 Add some missing vdev properties
#16364670147be5 zvol: ensure device minors are properly cleaned up
#16382dea8fabf7 FreeBSD: Fix RLIMIT_FSIZE handling for block cloning
#16387aef452f10 Improve zfs_blkptr_verify()
#16395cbcb52243 Fix the names of some FreeBSD sysctls in
include/tunables.cfg
#164015b9f3b766 Soften pruning threshold on not evictable metadata
#16404cdd53fea1 FreeBSD: Add missing memory reclamation accounting
#164041fdcb653b Once more refactor arc_summary output
#164191f5bf91a8 Fix memory corruption during parallel zpool import
with -o cachefile
#16426cf6e8b218 zstream: remove duplicate highbit64 definition
Obtained from: OpenZFS
OpenZFS commit: 9c56b8ec78
Notable upstream pull request merges:
#16209 --multi-- icp: rip out everything we don't use
#1623020c8bdd85 FreeBSD: Update use of UMA-related symbols in
arc_available_memory
#16242121a2d335 FreeBSD: unregister mountroot eventhandler on unload
#162585de3ac223 vdev_open: clear async fault flag after reopen
#16270436731276 zvol: Fix suspend lock leaks
#16273c87cb22ba head_errlog: fix use-after-free
#16284f72e081fb FreeBSD: Use a statement expression to implement
SET_ERROR()
#16300a10faf5ce FreeBSD: Use the new freeuio() helper to free dynamically
allocated UIOs
#16302a7fc4c85e zstd: don't call zstd_mempool_reap if there are no buffers
#16334dc91e7452 zdb: dump ZAP_FLAG_UINT64_KEY ZAPs properly
Obtained from: OpenZFS
OpenZFS commit: 1147a27978
Notable upstream pull request merges:
#1594041ae864b6 Replace P2ALIGN with P2ALIGN_TYPED and delete P2ALIGN
#161285137c132a zpool import output is not formated properly
#16138efbef9e6c FreeBSD: Add zfs_link_create() error handling
#1614604bae5ec9 Disable high priority ZIO threads on FreeBSD and Linux
#16151cc3869153 zfs_ioc_send: use a dedicated taskq thread for send
#16151adda768e3 spa: remove spa_taskq_dispatch_sync()
#16151515c4dd21 spa: flatten spa_taskq_dispatch_ent()
#161510a543db37 spa_taskq_dispatch_ent: simplify arguments
#16153975a13259 Add support for parallel pool exports
#1615389acef992 Simplified the scope of the namespace lock
#16159136c05321 ZAP: Fix leaf references on zap_expand_leaf() errors
#16162af5dbed31 Fix scn_queue races on very old pools
#161653400127a7 Fix ZIL clone records for legacy holes
#16167414acbd37 Unbreak FreeBSD cross-build on MacOS broken in 051460b8b#16172eced2e2f1 libzfs: Fix mounting datasets under thread limit pressure
#16178b64afa41d Better control the thread pool size when mounting datasets
#16181fa99d9cd9 zfs_dbgmsg_print: make FreeBSD and Linux consistent
#16191e675852bc dbuf: separate refcount calls for dbuf and dbuf_user
#16198a043b60f1 Correct level handling in zstream recompress
#1620434906f8bb zap: reuse zap_leaf_t on dbuf reuse after shrink
#16206d0aa9dbcc Use memset to zero stack allocations containing unions
#162078865dfbca Fix assertion in Persistent L2ARC
#1620808648cf0d Allow block cloning to be interrupted by a signal
#16210e2357561b FreeBSD: Add const qualifier to members of struct
opensolaris_utsname
#16214800d59d57 Some improvements to metaslabs eviction
#1621602c5aa9b0 Destroy ARC buffer in case of fill error
#1622501c8efdd5 Simplify issig()
Obtained from: OpenZFS
OpenZFS commit: e2357561b9
Notable upstream pull request merges:
#15839c3f2f1aa2 vdev probe to slow disk can stall mmp write checker
#158885044c4e3f Fast Dedup: ZAP Shrinking
#15996db499e68f Overflowing refreservation is bad
#1611867d13998b Make more taskq parameters writable
#1612821bc066ec Fix updating the zvol_htable when renaming a zvol
#16130645b83307 Improve write issue taskqs utilization
#161318fd3a5d02 Slightly improve dnode hash
#16134a6edc0adb zio: try to execute TYPE_NULL ZIOs on the current task
#16141b28461b7c Fix arcstats for FreeBSD after zfetch support
Obtained from: OpenZFS
OpenZFS commit: 8f1b7a6fa6
Notable upstream pull request merges:
#15793401c3563d libzfs: use zfs_strerror() in place of strerror()
#15793692f0daba libzfs: make userquota_propname_decode threadsafe
#157980cbf13529 libnvpair.c: replace strstr() with strchr() for a single
character
#1581278e8c1f84 Remove list_size struct member from list implementation
#15816aeb33776f Update vdev devid and physpath if changed between imports
#158188161b7327 Don't assert mg_initialized due to device addition race
#15823c3fd7a521 Update man pages to time(1) from time(2)
#15825884a48d99 zpool wait: print timestamp before the header
Obtained from: OpenZFS
OpenZFS commit: 2e6b3c4d94
Notable upstream pull request merges:
#1566066670ba9f fix(mount): do not truncate shares not zfs mount
#157193bddc4dae spa: Fix FreeBSD sysctl handlers (already merged)
#157195a703d136 spa: Let spa_taskq_param_get()'s addition of a newline
be optional
#157216138af86b Stop wasting time on malloc in snprintf_zstd_header
#157231f5bf9600 Make zdb -R a little more sane.
#1572620dd16d9f Make zdb -R scale less poorly
#15737d9885b377 fix: Uber block label not always found for aux vdevs
#157372df2a58dc Extend aux label to add path information
#15737b64be1624 Add path handling for aux vdevs in `label_path`
#15747a1771d243 Fix "out of memory" error
#157521a11ad9d2 Fix a potential use-after-free in zfs_setsecattr()
#15772f45dd90f3 Fix cloning into mmaped and cached file
#157811494e8fba Autotrim High Load Average Fix
Obtained from: OpenZFS
OpenZFS commit: a0b2a93c41
Notable upstream pull request merges:
#15643a9b937e06 For db_marker inherit the db pointer for AVL comparision
#15644e53e60c0b DMU: Fix lock leak on dbuf_hold() error
#1565386063d903 dbuf: Handle arcbuf assignment after block cloning
#1565686e115e21 dbuf: Set dr_data when unoverriding after clone
Obtained from: OpenZFS
OpenZFS commit: 86e115e21e
#15539687e4d7f9 Extend import_progress kstat with a notes field
#15544c7b611926 Allow block cloning across encrypted datasets
#15553adcea23cb ZIO: Add overflow checks for linear buffers
#155935f2700eee zpool: flush output before sleeping
#156093e4bef52b Only provide execvpe(3) when needed
#15610735ba3a7b Use uint64_t instead of u_int64_t
#15612bcd83ccd2 ZIL: Remove TX_CLONE_RANGE replay for ZVOLs
#1561755b764e06 ZIL: Do not clone blocks from the future
#15623727497ccd module/icp/asm-arm/sha2: enable non-SIMD asm kernels
on armv5/6
#156259743d0963 BRT: Limit brt_vdev_dump() to only one vdev
#15629f9765b182 zdb: Dump encrypted write and clone ZIL records
#156342aa3a482a ZIL: Remove 128K into 2x68K LWB split optimization
#1563911656234b FreeBSD: Ensure that zfs_getattr() initializes the
va_rdev field
#156474836d293c zfs_refcount_remove: explictly ignore returns
#15649f0cb6482e setproctitle: fix ununitialised variable
#15650450f2d0b0 import: ignore return on hostid lookups
Obtained from: OpenZFS
OpenZFS commit: 450f2d0b08
Notable upstream pull request merges:
#15532c1a47de86 zdb: Fix zdb '-O|-r' options with -e/exported zpool
#15535cf3316633 ZVOL: Minor code cleanup
#15541803a9c12c brt: lift internal definitions into _impl header
#15541213d68296 zdb: show BRT statistics and dump its contents
#15543a49087510 ZIL: Refactor TX_WRITE encryption similar to
TX_CLONE_RANGE
#1554327d8c23c5 ZIL: Do not encrypt block pointers in lr_clone_range_t
#1554967894a597 unnecessary alloc/free in dsl_scan_visitbp()
#15551126efb588 FreeBSD: Fix the build on FreeBSD 12
#15563acb33ee1c FreeBSD: Fix ZFS so that snapshots under .zfs/snapshot are
NFS visible
#155647bbd42ef4 Don't allow attach to a raidz child vdev
#15566688514e47 dmu_buf_will_clone: fix race in transition back to NOFILL
#1557130d581121 dnode_is_dirty: check dnode and its data for dirtiness
Obtained from: OpenZFS
OpenZFS commit: 688514e470
Notable upstream pull request merges:
#15366c3773de1 ZIL: Cleanup sync and commit handling
#15409dbe839a9 zvol: Cleanup set property
#1540960387fac zvol: Implement zvol threading as a Property
#154099ccdb8be zvol: fix delayed update to block device ro entry
#1544805a7348a RAIDZ: Use cache blocking during parity math
#15452514d661c Tune zio buffer caches and their alignments
#15456799e09f7 Unify arc_prune_async() code
#15465763ca47f Fix block cloning between unencrypted and encrypted
datasets
To make the module version better comparable, the module version number
now includes the commit count since last tag.
Obtained from: OpenZFS
OpenZFS commit: 41e55b476b
Notable upstream pull request merges:
#14378c0e58995e Large sync writes perform worse with slog
#14721797f55ef1 Do not persist user/group/project quota zap objects
when unneeded
#15356380c25f64 FreeBSD: Improve taskq wrapper
#153904fbc52495 Remove lock from dsl_pool_need_dirty_delay()
#1539757b409856 Trust ARC_BUF_SHARED() more
#15402b29e98fa8 Properly pad struct tx_cpu to cache line
#15405ea30b5a9e Set spa_ccw_fail_time=0 when expanding a vdev
#15416b9384b949 FreeBSD: taskq: Remove unused declaration
Obtained from: OpenZFS
OpenZFS commit: 797f55ef12
Notable upstream pull request merges:
#15368008baa091 FreeBSD: Reduce divergence from in-tree sources
#153711b310dfb1 DMU: Do not pre-read holes during write
#153958a7407012 Zpool can start allocating from metaslab before
TRIMs have completed
Obtained from: OpenZFS
OpenZFS commit: 8a74070128
Notable upstream pull request merges:
#15240bbac1d297 Update the behavior of mountpoint property
#15240c63aabaf1 Improve the handling of sharesmb,sharenfs properties
#15248741c215ba Fix l2arc_apply_transforms ztest crash
#15274ee720ad7b Retire z_nr_znodes
#1527890149552b ZIL: Fix potential race on flush deferring
#15279e923bcd16 Update the MOS directory on spa_upgrade_errlog()
#15281529bec7d7 zed: Allow autoreplace and fault LEDs for removed vdevs
#152887228ba111 cmd: add 'help' subcommand to zpool and zfs
#152974647353c8 status: report pool suspension state under
failmode=continue
Obtained from: OpenZFS
OpenZFS commit: 4647353c8b
Notable upstream pull request merges:
#15018 Increase limit of redaction list by using spill block
#15161 Make zoned/jailed zfsprops(7) make more sense
#15216 Relax error reporting in zpool import and zpool split
#15218 Selectable block allocators
#15227 ZIL: Tune some assertions
#15228 ZIL: Revert zl_lock scope reduction
#15233 ZIL: Change ZIOs issue order
Obtained from: OpenZFS
OpenZFS commit: 95f71c019d
Notable upstream pull request merges:
#15024 Add missed DMU_PROJECTUSED_OBJECT prefetch
#15029 Do not request data L1 buffers on scan prefetch
#15036 FreeBSD: catch up to __FreeBSD_version 1400093
#15039 Fix raw receive with different indirect block size
#15047 FreeBSD: Fix build on stable/13 after 1302506
#15049 Fix the ZFS checksum error histograms with larger record sizes
#15052 Reduce bloat in ereport.fs.zfs.checksum events
#15056 Avoid extra snprintf() in dsl_deadlist_merge()
#15061 Ignore pool ashift property during vdev attachment
#15063 Don't panic if setting vdev properties is unsupported for this vdev type
#15067 spa_min_alloc should be GCD, not min
#15071 Add explicit prefetches to bpobj_iterate()
#15072 Adjust prefetch parameters
#15076 Refactor dmu_prefetch()
#15079 set autotrim default to 'off' everywhere
#15080 ZIL: Fix config lock deadlock
#15088 metaslab: tuneable to better control force ganging
#15096 Avoid waiting in dmu_sync_late_arrival()
#15097 BRT should return EOPNOTSUPP
#15103 Remove zl_issuer_lock from zil_suspend()
#15107 Remove fastwrite mechanism
#15113 libzfs: sendrecv: send_progress_thread: handle SIGINFO/SIGUSR1
#15122 ZIL: Second attempt to reduce scope of zl_issuer_lock
#15129 zpool_vdev_remove() should handle EALREADY error return
#15132 ZIL: Replay blocks without next block pointer
#15148 zfs_clone_range should return descriptive error codes
#15153 ZIL: Avoid dbuf_read() before dmu_sync()
#15172 copy_file_range: fix fallback when source create on same txg
#15180 Update outdated assertion from zio_write_compress
Obtained from: OpenZFS
OpenZFS commit: 804414aad2
As it turns out having autotrim default to 'on' on FreeBSD never really
worked due to mess with defines where userland and kernel module were
getting different default values (userland was defaulting to 'off',
module was thinking it's 'on').
PR: 264234
Reviewed by: mav (zfs)
Differential Revision: https://reviews.freebsd.org/D41056
Notable upstream pull request merges:
#14654 Pack our DDT ZAPs a bit denser
#14979 Again fix race between zil_commit() and zil_suspend()
#14985 Some ZIO micro-optimizations
#15000 Fix remount when setting multiple properties
#15004 ddt_addref: remove unnecessary phys fill when refcount is 0
#15007 Do not report bytes skipped by scan as issued
#15023 Enable tuning of ZVOL open timeout value
Obtained from: OpenZFS
OpenZFS commit: 009d3288de
OpenZFS tag: zfs-2.2.0-rc1
Notable upstream pull request merges:
#14925 Another set of vdev queue optimizations
#14964 Use big transactions for small recordsize writes
#14999 ZIL: Fix another use-after-free
Obtained from: OpenZFS
OpenZFS commit: a9d6b0690b
Notable upstream pull request merges:
#11680 Add support for zpool user properties
#14145 Storage device expansion "silently" fails on degraded vdev
#14405 Create zap for root vdev
#14659 Allow MMP to bypass waiting for other threads
#14674 Miscellaneous FreBSD compilation bugfixes
#14692 Fix some signedness issues in arc_evict()
#14702 Fix typo in check_clones()
#14715 module: small fixes for FreeBSD/aarch64
#14716 Trim needless zeroes from checksum events
#14719 vdev: expose zfs_vdev_max_ms_shift as a module parameter
#14722 Fix "Detach spare vdev in case if resilvering does not happen"
#14723 freebsd clone range fixes
#14728 Fix BLAKE3 aarch64 assembly for FreeBSD and macOS
#14735 Fix in check_filesystem()
#14739 Fix data corruption when cloning embedded blocks
#14758 Fix VERIFY(!zil_replaying(zilog, tx)) panic
#14761 Revert "ZFS_IOC_COUNT_FILLED does unnecessary txg_wait_synced()"
#14774 FreeBSD .zfs fixups
#14776 FreeBSD: make zfs_vfs_held() definition consistent with declaration
#14779 powerpc64: Support ELFv2 asm on Big Endian
#14788 FreeBSD: add missing vop_fplookup assignments
#14789 PAM: support the authentication facility
#14790 Revert "Fix data race between zil_commit() and zil_suspend()"
#14795 Fix positive ABD size assertion in abd_verify()
#14798 Mark TX_COMMIT transaction with TXG_NOTHROTTLE
#14804 Correct ABD size for split block ZIOs
#14806 Use correct block pointer in block cloning case.
#14808 blake3: fix up bogus checksums in face of cpu migration
Obtained from: OpenZFS
OpenZFS commit: d96e29576c
Notable upstream pull request merges:
#12194 Fix short-lived txg caused by autotrim
#13368 ZFS_IOC_COUNT_FILLED does unnecessary txg_wait_synced()
#13392 Implementation of block cloning for ZFS
#13741 SHA2 reworking and API for iterating over multiple implementations
#14282 Sync thread should avoid holding the spa config write lock
when possible
#14283 txg_sync should handle write errors in ZIL
#14359 More adaptive ARC eviction
#14469 Fix NULL pointer dereference in zio_ready()
#14479 zfs redact fails when dnodesize=auto
#14496 improve error message of zfs redact
#14500 Skip memory allocation when compressing holes
#14501 FreeBSD: don't verify recycled vnode for zfs control directory
#14502 partially revert PR 14304 (eee9362a7)
#14509 Fix per-jail zfs.mount_snapshot setting
#14514 Fix data race between zil_commit() and zil_suspend()
#14516 System-wide speculative prefetch limit
#14517 Use rw_tryupgrade() in dmu_bonus_hold_by_dnode()
#14519 Do not hold spa_config in ZIL while blocked on IO
#14523 Move dmu_buf_rele() after dsl_dataset_sync_done()
#14524 Ignore too large stack in case of dsl_deadlist_merge
#14526 Use .section .rodata instead of .rodata on FreeBSD
#14528 ICP: AES-GCM: Refactor gcm_clear_ctx()
#14529 ICP: AES-GCM: Unify gcm_init_ctx() and gmac_init_ctx()
#14532 Handle unexpected errors in zil_lwb_commit() without ASSERT()
#14544 icp: Prevent compilers from optimizing away memset()
in gcm_clear_ctx()
#14546 Revert zfeature_active() to static
#14556 Remove bad kmem_free() oversight from previous zfsdev_state_list
patch
#14563 Optimize the is_l2cacheable functions
#14565 FreeBSD: zfs_znode_alloc: lock the vnode earlier
#14566 FreeBSD: fix false assert in cache_vop_rmdir when replaying ZIL
#14567 spl: Add cmn_err_once() to log a message only on the first call
#14568 Fix incremental receive silently failing for recursive sends
#14569 Restore ASMABI and other Unify work
#14576 Fix detection of IBM Power8 machines (ISA 2.07)
#14577 Better handling for future crypto parameters
#14600 zcommon: Refactor FPU state handling in fletcher4
#14603 Fix prefetching of indirect blocks while destroying
#14633 Fixes in persistent error log
#14639 FreeBSD: Remove extra arc_reduce_target_size() call
#14641 Additional limits on hole reporting
#14649 Drop lying to the compiler in the fletcher4 code
#14652 panic loop when removing slog device
#14653 Update vdev state for spare vdev
#14655 Fix cloning into already dirty dbufs
#14678 Revert "Do not hold spa_config in ZIL while blocked on IO"
Obtained from: OpenZFS
OpenZFS commit: 431083f75b