This reverts commit e903655c50.
The commit comes from the OpenZFS merge.
OpenZFS introduced in d2f5cb3a5 two new libraries: libbtree and
librange_tree. We don't have these in our build.
To keep diffs as minimal as possible and avoid future breakages we
should import these for the FreeBSD build with bells and whistles.
After this issue is resolved, e903655c5 can be re-committed.
Notable upstream pull request merges:
#17864e903655c5 zpool: Add zpool status -vv error ranges
#18820 -multiple zdb: account pending DDT-log frees in leak detection
#18884 -multiple zio_crypt: establish platform interface; rework common
code to use it
#19010 -multiple zfs_namecheck: reject '.' and '..' before a snapshot or
bookmark
#19031994fb1703 Fix metaslab count assertion in metaslab_group_alloc()
for small vdevs
#19093f5b2fc8e2 zfs_ctldir: make .zfs/snapshot/<name> btime the snapshot
creation time
#190972dece2a34 zstream: report invalid record context without assertions
#1910278f49e1dd vdev_disk: simplify alignment checks for linear ABDs
#19108 -multiple Fix permanent errors misfiled into the scrub error log
#19110fa4bc4dec spa_errlog: don't let one unresolvable entry hide the
whole error log
#19116b6dde8a17 zio_crypt: free the key unwrap uios when decryption fails
#19122 -multiple Fix dd_lock contention on space accounting
#19126c792317f2 Avoid dp_lock in the dirty space accounting
#191317fd87803e Make the spa_config_lock reader fast path lockless
#19137a83d96835 libzfs: do not iterate snapshots for a mountpoint
changelist
#19152ccce78729 ZIO: Order a batch arrival against the hold it releases
#191559d7260c9b Propagate vdev state change on probe failure
#19157946be3a33 FreeBSD: remove legacy ioctl support
#191651d9c32c16 zpool: accept more redundant special and dedup vdevs
#19167638abd22a zfs_domount: fix vfs_t double-free on root setup failure
Obtained from: OpenZFS
OpenZFS commit: 1f380a4f34
Notable upstream pull request merges:
#188086d4ff3b4f Pool split leaks DTL spacemap objects
#188440833cfd64 Decline Direct I/O reads on a file handle after a benign
verify failure
#1885339764eb06 Fix double free when cloning a block with a pending free
#1890151fe1fb84 dmu_send: a meta-dnode range does not start where an
object does
#18903904d4327f dmu_objset_open_impl: unregister prop callbacks on error
#18906e45640415 zdb: add detailed diagnostics for MOS leaks and spacemap
refs
#189091b7143557 Keep a grown vdev from adopting an older pool's labels
#18912 -multiple Defer destruction of a snapshot that a mount is holding
open
#1892133ae06bb6 ZIO: Batch vdev children completions
#189407853c27eb ZIO: Batch lightweight ZIOs
#18967 -multiple Speed up pool rewind and allow it to tolerate minor damage
#18968b0fff48dc arc: harness buf_hdr's anon state invariant checks
#18969b0da5c4ce dsl_crypt: validate every key change-key will rewrap
#18974b19fa7c97 log_spacemap: make zfs_log_sm_blksz tunable
#18982c878ee452 zstream: track and limit memory use
#18991a1261384a zstream: self-tuning queues
#18992fd639b075 zcp: support bookmarks in zfs.sync.destroy
#189930498c554d vdev_disk_open: fix ENOENT retry & cleanup error handling
#190035280a08f6 Write uberblocks only to vdevs used by the txg
#19008c47591d5d arc: apply arc_min tunables set before arc_init() has run
#19016cd578e518 dnode: fix heap-use-after-free in dnode_rele_and_unlock()
#19017b824f3116 zstd: declare __asan_*_memory_region() for user space
builds
#190296860d1c2f DDT: Use proper size when calling kmem_free on
ddt_prune_entry_t
#19041aa26ca67b Do not complete a device removal that hit IO errors
#190428e5bb1d4b Wait for the initialize and trim threads to exit
#19051ba524e0d7 zpool: things get messy with 0 columns
#1905369ef525a4 dsl_deadlist_space_range: use correct tree when summing
up space
#190590ee8ea01b FreeBSD: use sys/abi_compat.h for time32_t
#19062e08bc2973 Skip interior dnode slots when receiving DRR_FREEOBJECTS
#1906692a3904af Wait for the txg that finished a scan to sync
#19071db07a5e0a dbuf: account dirty data for embedded writes
#190721a8e51491 Fix self-deadlock when cloning a range within the same
file
#1907575bd31c28 L2ARC: do not feed a device while its rebuild is pending
#1908356e8d234b Stop the TRIM and initialize threads when a vdev goes
offline
#19090ab994acdd dmu: remove dmu_prealloc()
#1909261fbdf1a2 zfs: spa_sync_upgrades() should only take lock when needed
Obtained from: OpenZFS
OpenZFS commit: 02b5baf13c
Notable upstream pull request merges:
#16761eb1738bcb FreeBSD: Enable Direct IO by default
#16747 -multiple On-demand log-spacemap flush
#184740d0eae2ab implement thorough scrub support (zpool scrub -t)
#185626721ab981 Calling thread IO
#186577ed1268d3 Fix race between device removal completion and pool export
#187070d1f3b1c6 RAIDZ: Fix parity regeneration/check condition
#18713 -multiple libzfs: fix key unload failure when unmounting an
encryption root
#18714d902eec64 Disconnect metaslab tracing from default builds
#18716e78fa488a zstream: multithreading
#187186acb99cb1 Do not return ESTALE for open-unlinked files
#18720f607ef7e7 Fix insufficient locking in dedup verify
#18722 -multiple snapdir: misc cleanups
#187249bf75b4b1 Fix reads for blocks freed after being cloned
#187259b7642df9 Harden recv record validation
#1873237f066e3c FreeBSD: Wire sha512 offload to the build
#18736 -multiple Remove idmap/userns concept from core & FreeBSD platform
code
#18742d63f14057 libzutil: keep valid spare and l2cache paths on import
#18749f217627d4 Fix receive of split large blocks with a short trailing
chunk
#1875483bf40784 Use a single creation time for a recursive snapshot
#18755ebd9e2765 zstream: add "drop records" chain module
#187637d565cdfa zfs bookmark: add recursive (-r) bookmark creation
#1876550557cc80 zpool initialize: add -z to write zeroes
#187660467ba01c Add SECURITY.md policy filE
#18773ffde77051 Fix deduce_nblkptr for large dnodes on receive
#18784 -multiple libzfs: clarify the raw incremental "IV set guid mismatch"
error
#187939a02e53ad libzfs: don't abort receiving a raw encrypted send that
carries holds
#1879530426217b Rate limit Direct I/O verify zevents
#1879873b202451 Bound explicit user prefetch to a fraction of the ARC
#188012a5331f8e Fix dmu_zfetch_prime() assuming a stream was created
#18802fb5fdefd8 libzfs: fallback VDEV_UPATH to VDEV_PATH for non-DM
devices
#18809bd2d87399 zdb: output refcounts from verify_spacemap_refcounts()
#188115d530b8be ABD: Validate borrowed buffer length
#188125d687a975 dbuf: use dirty record size for overridden writes
#18819 -multiple ddt: fix refcount bypass and gang member leak for dedup
gang blocks
#1882187e2e4047 BRT: Implement partial bv_entcount writing
#18822 -multiple dnode_sync: Relax constraint on indirect freeing - #18822#18827d98fa72ca L2ARC: bound the rebuild by the write hand on a first
sweep
#1883190cdd9aef Batch object reallocation syncs in zfs receive
#18833466d90e15 zed: let autoexpand see capacity changes on partitioned
disks
#188351ac3f2786 mmp: skip non-writeable vdevs during activity check
#18838a04c40138 DDT: Fix several bugs in pruning
#188410bb41751f zpool export: return EBUSY when zvol minors are in use
#188483020c18ca dmu_recv: Avoid potential null deref
#188558cdd9b2b7 mmp: do not require writes to mirror legs the config
marks absent
#18858596c7a0ec Reduce dp_lock scope for MOS writes
#188593ebf3ffc4 Predict and throttle buffers dirtied by the sync context
#18860 -multiple Further parallelize block cloning
#18865412b17a29 Fix DMU bonus hold leak on I/O error
#18867b5bb1f816 Add missing checks to zfs_clone_range_replay()
#188683df5b2e7f libzfs: String trimming should not operate out of bounds
#18869be62c5385 libzfs: Do not call munmap() when mmap() fails
#1887174e76f2d8 libzfs: don't truncate a resolved vdev path in
zpool_vdev_name()
#188747312322b5 nvpair: Fix operator precedence
#188833bd8cefdc libzfs: don't read a dataset handle after closing it in
resume send
#18886b4f70cb9e Fix negative time overflows in DDT pruning
#18888674b1ae5c DDT: Make ddt_zap_walk() use cursor _by_dnode functions
#18889fd1ae59c7 DDT: Skip DDT log lookups in ddt_prune_walk()
#18892 -multiple zhack: add "mmp reclaim" to recover a pool stranded by MMP
#18897216de07d8 arc: fix race between arc_release() and arc_read_done()
#1889928afe8b08 CodeQL: Flag implicit compare-then-assign in branch
conditions
#189170a79c039f arc: save on buf_hash_find() call at arc_read_done()
#189207026d3335 Fix race condition in raidz expansion startup
#18927be55e01bc FreeBSD: Do not leak TSD zfs_geom_probe_vdev_key on errors
#189285bd7d4466 scan: count skipped blocks as examined
#18937a5d678864 Allow pool import with corrupted spare/l2arc configs
#18960 -multiple vdev_open: use calling credential to check for device
access
#18961acbcdd92c dmu_recv_begin_check: dsl_dataset_rele() should be called
on ds
#18962df3ff37fc dmu_redact_snap: Do proper cleanup on ENAMETOOLONG
#1896484aa7e7e0 libspl: consult ZFS_HOSTID on FreeBSD as well
Obtained from: OpenZFS
OpenZFS commit: 84aa7e7e09
New features in 3.8.8:
#2685 add support for reading encrypted zipx formats
(bzip2, lzma, ppmd, xz, zstd)
Bugfixes between 3.8.7 and 3.8.8:
Core:
#2905 Fix NULL pointer increment in archive_acl_from_text_nl
#2927 archive_match: Prevent call stack overflow
#2928 pathmatch: Treat anchors not special without flags
#2942 fix `archive_entry_set_mode` & `archive_entry_set_perm`
#2957 Fix a double-free in the link resolver
#2971 Fix mem leaks found with ASAN-enabled test suites
#2988 Fix buffer overrun and wrong output for NULL-name ACL entries
#2998, §3009: archive_read: FATAL should be sticky for all API calls
#3010 Date parsing: reject dates with numbers of more than 4 digits
#3011 acl: parser out-of-bounds read
#3012 pathmatch: heap buffer over-read
#3036 cmdline: Use free+strdup instead of realloc+strcpy
#3019 sparse: UAF in sparse_reset
#3037 strmode: Remove strcpy usage
#3040 Fix a number of unchecked memory allocations
#3064 Fix libattr version returned in archive_version_details,
as well as a leak
#3083 Fix integer overflow in __archive_read_filter_ahead
#3114 Fix OOB in `archive_read_open_filenames_w` on some systems
#3146 read_disk: Check if off_t can overflow size_t
#XXXX read: Fix memory corruption on filtered multi-volume archives
Filters:
#2526 compress: Fix SIGSEGV when appended before open
#3033 filter: Remove unneeded strcpy calls
#3050 bzip2: Support large in-memory archives
#3054 filter: Fix mismatched filter function dispatch table entry in
archive_write_add_filter.c
#3073 zstd: Fix 32 bit platform endless loop and OOB access during bidding
#3085 gzip: Support more large in-memory archives
#3093 lz4: Improve truncated input stream detection
#3100 lz4: Check `XXH32_init` result
#3103 uu: Extend range checks to avoid 32 bit OOB
#3115 gzip: Fix OOB in writer with huge filename
#3132 lz4: Fix double-free on reallocation failure
7-ZIP reader and writer:
#2923 sanity-check FilesInfo NumFiles before allocating entries
#2929 Verify that Codec ID fits into 63 bit
#2980 Sanity-check the number of files
#2985 Harden SFX parser
#3002 Clean up the failure path in `setup_decode_folder`
#3006 Fix 32 bit heap overflow
#3062 writer: free file->utf16name on symlink UTF-8 conversion failure
#3067 Set error message in case of error
#3074 Support streamable reading again
#3099 Extend support for filtered input
#3102 fix a number of issues in zstd detection
#3119 Fix range check in get_pe_sfx_offset
CAB reader:
#2979 reader: Fix use of uninitialized values from Huffman table
#3000 Harden the handling of invalid headers
#3144 Improve truncation detection
#3145 Properly limit maximum name length
#3153 Fix multi volume parser
CPIO reader and writer:
#2984 reader: Validate pathname in record_hardlink
#3043 reject oversized pathnames before read-ahead
#3055 Fix UAF in error path
#3095 Improve afio header detection
#3158 Fix writer OOB read with very long filenames
#3168 fix OOB read from int pathlength truncation in newc/binary writers
iso9660 reader and writer:
#2968 Fix `..` (dot dot) path normalization
#2974 Fix OOB during Joliet ID generation
#2978 Fix infinite loop in Joliet ID generation
#2983 Fix joliet pathname overflow
#3017 Fix NULL deref and Joliet ID overflow
#3021 fix infinite loop on self-referencing CE entry
#3029 Fix memory leaks on error paths
#3045 bound duplicate identifier extension placement
#3117 Fix null dereference in set_directory_record_rr
mtree reader and writer:
#2930 Fix time value parser truncation
#2982 Fix hex parser
#3007 Escape standard pathname matching characters
#3008 Do not append '/' when basename is '.'
#3018 NULL pointer deref during archive close
#3032 Port iso9660 fix for `..` (dot dot) path normalization
#3057 Fix null dereference for some corner cases
RAR reader:
#3015 avoid reading NEWSUB extended data during header parsing
#3047 skip NEWSUB payloads without size cap
#3048 reset low-distance state for new LZ tables
#3087 Simplify FILE_ATTRIBUTE_DIRECTORY check
#3105 Add missing bound check for staticdata
RARv5 reader:
#3004 FAIL if the decode table is > 2^16
#3081 Avoid dangling pointers in init_unpack
#3091 skip unconsumed block bytes before ARCHIVE_RETRY
#3121 fix signed integer underflow in bytes_remaining
TAR reader and writer:
#2991 Harden timestamp parsing
#3038 Improve string safety in list_item_verbose
#3052 Fix OOB with empty wide character directory names
WARC reader and writer:
#3061 writer: free hdr on _popul_ehdr overflow in _warc_header
XAR reader and writer:
#3013 Fix two UB (#3013)
#3028 Free XAR xattr fstype metadata during cleanup
#3030 Avoid integer overflows in number parsers
#3032 Port iso9660 fix for `..` (dot dot) path normalization
#3041 Fix writer OOB accesses with fflags
#3060 fix fflags_text leak in file_free
ZIP reader and writer:
#2981 Limit the LZMA initialization to 64MiB memory (#2981)
#2993 Don't try to write overlong pathnames (#2993)
#2996 Reject empty pathnames in ZIP writer (#2996)
Obtained from: libarchive
Vendor commit: 7219b0134d771dc4b51bf86b4d01761b87398b1b
Notable upstream pull request merges:
#18509f16b3744d zstream: refactor common functions
#18573 -multiple Persist z_seq across znode eviction
s18611 eb0c674c2 zfs_ioctl: fix EBUSY race between quota queries and mount
#1863777e64d86e Fix self-deadlock when setting the "allocating"/"path"
vdev property
#18645e3082b923 freebsd: set mnt_time on the rootfs at mountroot time
#1865250d012b2a zbookmark_compare: handle "marker" bookmarks with negative
levels
#18664520eeeaa6 Improve performance of "zpool offline" for log devices
#186686b8f79877 Avoid more abd_t allocations in RAIDZ/dRAID
#1866999ab859c3 Optimize metaslab_set_selected_txg()
#1867397b9ba7a9 delegate: add 'send:encrypted' permission
#186872ea519c2a Avoid lookup overhead for nonexistent xattr directories
#1868887593ea2b Fix handling of _PC_HAS_HIDDENSYSTEM for FreeBSD
#186930483a8e0c Clean up embedded slog metaslab across txgs
#1869541311c665 RAIDZ: Optimize single data column writes
#1870637af89948 ddt_log: Fix refcount tagging for begin/commit
Obtained from: OpenZFS
OpenZFS commit: 37af899488
Correctly declare vfs.zfs.metaslab.condense_pct
The following sysctls have moved to metaslab.c:
vfs.zfs.metaslab.df_alloc_threshold
vfs.zfs.metaslab.df_free_pct
vfs.zfs.metaslab.sm_blksz_no_log
vfs.zfs.metaslab.sm_blksz_with_log
Reported by: [email protected]
Notable upstream pull request merges:
#17000 -multiple cmd/zfs: support creating parents with canmount=no
#17926b481a8bbb Make zpool status dedup table support raw bytes -p output
#18238 -multiple Report space metrics per allocation class
#182405dad9459d Add --no-preserve-encryption flag
#182571eace5906 libzfs: use mount_setattr for selective remount including
legacy mounts
#182591e2c94a04 More consistent use of TREE_* macros in AVL comparators
#18262c58b8b7dc Fix check for .cfi_negate_ra_state on aarch64
#18264f109c7bb9 Add the --file-layout (-f) option to zdb(8)
#18268304de7f19 libzfs: handle EDOM error in zpool_create
#18275753f1e1e2 zstream: add a drop_record subcommand
#182760f90a797d Fix vdev_rebuild_range() tx commit
#182771e1d64d66 Fix log vdev removal issues
#1827806b0abfe6 Fix the send --exclude option to work with encryption
#18281e73ada771 libzpool: lift zfs_file ops out to separate source file
#18284d97945776 zstream: consolidate shared code
#18285 -multiple Separate SIMD compile checks for userspace and kernel
#18288c5905b2cb Implement lzc_send_progress
#18289 -multiple L2ARC: Add depth cap and write budget fairness for
persistent markers
#18290d45c8d648 FreeBSD: Improve dmesg kernel message prefix
#18294b403040c4 draid: fix data corruption after disk clear
#18296 -multiple libzfs: mnttab cleanup
#18300d35951b18 zpool clear: remove undocumented rewind flags
#18301ae7fcd5f9 fix libzfs diff mem leak in an error path
#1830365165df12 zilstat: add man page
#183147f65e04ab libzfs: scrub: only include start and end nv pairs if
needed for scrub
#18315 -multiple Sync ZVOLs block cloning conditions with file systems
#18330f80338fac zarcsummary: add man page
#18337f259a47c7 zpool-iostat.8: clarify first report shows per-second
averages
Obtained from: OpenZFS
OpenZFS commit: 3ee08abd2f
Notable upstream pull request merges:
#173584975430cf Add vdev property to disable vdev scheduler
#18031c77f17b75 Add snapshots_changed_nsecs dataset property
#18080dbb3f247e cmd/zfs: clone: accept `-u` to not mount newly created
datasets
#18089 -multiple Zstd: Update bundled library to version 1.5.7
#180912301755df Fix zfs_open() to skip zil_async_to_sync() for the
snapshot
#18093 -multiple L2ARC: Rework write throttling with DWPD rate limiting
and parallel writes
#180952dbd6af5e Rename several printf attributes declarations to
__printf__
#180968605bdfdd FreeBSD: unbreak compilation on i386
#18105794f1587d When receiving a stream with the large block flag,
activate feature
#18115765929cb4 DDT: Add locking for table ZAP destruction
#1811809e4e01e9 Fix history logging for `zpool create -t`
#181192f1f25217 icp: emit .note.GNU-stack section for all ELF targets
#181313fffe4e70 Fix --enable-invariants on FreeBSD
#18133d2f5cb3a5 Move range_tree, btree, highbit64 to common code
#1813654b141fab FreeBSD: Remove references to DEBUG_VFS_LOCKS
#18138cdf89f413 Flush RRD only when TXGs contain data
#18139a157ef62a Make sure we can still write data to txg
#18140cd895f0e5 remove thread unsafe debug code causing FreeBSD double
free panic
#181444f180e095 Fix activating large_microzap on receive
#1814635b2d3970 Lock db_mtx around arc_release() in couple places
#18154b36472052 nvpair: chase FreeBSD xdrproc_t definition
#1816021bbe7cb6 Improve caching for dbuf prefetches
#18177 -multiple Multihost Improvements
#181792646bd558 Allow rewrite skip cloned and snapshotted blocks
#18180aa29455dd Restrict cloning with different properties
#18184040ba7a7c libzfs: improve error message for zpool create with
ENXIO
#181881412bdc6c zfs_vnops_os.c: Move a vput() to after
zfs_setattr_dir()
#18198cc184fe98 Fix `send:raw` permission for send `-w -I`
#18208ba970eb20 Cleanup allocation class selection
#182120f9564e85 Simplify dnode_level_is_l2cacheable()
#18214370570890 Remove parent ZIO from dbuf_prefetch()
#18218bfb276e55 freebsd: Fix TIMESPEC_OVERFLOW for PowerPC
#18222d06a1d9ac Fix available space accounting for special/dedup
#18225d48967728 ICP: AES-GCM VAES-AVX2: fix typos and document
source files
#18226c8a72a27e ICP: AES-GCM assembly: remove unused Gmul functions
#18230 -multiple Fix zdb --key crash for unencrypted datasets, and
teach tests to understand this better
#18233 -multiple icp: add SHA-512 implementation using Intel SHA512
extension
#18245991fc56fa Introduce dedupused/dedupsaved pool properties
#182516a717f31e Improve misleading error messages for
ZPOOL_STATUS_CORRUPT_POOL
#182547744f0496 SIMD: libspl: test the correct CPUID bit for AVX512VL
#182556495dafd5 range_tree: use zfs_panic_recover() for
partial-overlap remov
#182563408332d7 zhack: Fix importing large allocation profiles on
small pools
#18258f8457fbdc Fix deadlock on dmu_tx_assign() from vdev_rebuild()
#18263f8e5af53e Fix redundant declaration of dsl_pool_t
Obtained from: OpenZFS
OpenZFS commit: f8e5af53e9
Notable upstream pull request merges:
#163071d43387dd zdb: Add -O option for -r to specify object-id
#17965a62c62120 ARC: Pre-convert zfs_arc_min_prefetch_ms
#17970d393166c5 ARC: Increase parallel eviction batching
#1798120f09eae4 ZIO: ZIO_STAGE_DDT_WRITE is a blocking stage
#17983ff47dd35e Fix ddtprune causing space leak
#1801586b064469 FreeBSD: Fix a potential null dereference
in zfs_freebsd_fsync() (already merged)
#18020ff47dd35e Ensure 64-bit `off_t` is used in user space
instead of `loff_t`
#1802809492e0f2 Reduce dataset buffers re-dirtying
#18033f72fd378c Defer async destroys on pool import
#180433d76ba273 Improve async destroy processing timing
#1804446d6f1fe5 DDT: Move logs searches out of the lock
#18047ff5414406 DDT: Switch to using ZAP _by_dnode() interfaces
#180483b1ff816b DDT: Add/use zap_lookup_length_uint64_by_dnode()
#1805522e89aca8 DDT: Fix compressed entry buffer size
#180590550abd4b RAIDZ: Remove some excessive logging
#18060a83bb15fc Reduce minimal scrub/resilver times
#18061962e68865 Use reduced precision for scan times
#18063051a8c749 Bypass snprintf() in quota checks if no quotas set
#180647ff329ac2 Fix rangelock test for growing block size
Obtained from: OpenZFS
OpenZFS commit: 962e68865e
libarchive 3.8.3
Important bugfixes:
#2753 lib: Create temporary files in the target directory
#2768 lha: Fix for an out-of-bounds buffer overrun when using
p[H_LEVEL_OFFSET]
#2769 7-zip: Fix a buffer overrun when reading truncated 7zip headers
#2771 lz4 and zstd: Support both lz4 and zstd data with leading
skippable frames
Obtained from: libarchive
Vendor commit: 1368b08875351df8aa268237b882c8f4ceb0882d
MFC after: 1 week
Important bugfixes:
#2753 lib: Create temporary files in the target directory
#2768 lha: Fix for an out-of-bounds buffer overrun when using
p[H_LEVEL_OFFSET]
#2769 7-zip: Fix a buffer overrun when reading truncated 7zip headers
#2771 lz4 and zstd: Support both lz4 and zstd data with leading
skippable frames
Obtained from: libarchive
Vendor commit: 1368b08875351df8aa268237b882c8f4ceb0882d
Notable upstream pull request merges:
#1747702fdd26e5 Add knob to disable slow io notifications
#17792d0294aa75 Update dnode_next_offset_level to accept blkid instead
of offset
#178248c225ff1b Fix gang write late_arrival bug
#17861 -multiple Lift userspace definitions out of zfs_context.h
#17872dcada084b Pass flags to more DMU write/hold functions
#17875ec268cdf9 Fix caching of DDT log and BRT
#17875ea125eeb5 BRT: Round bv_entcount up to BRT_BLOCKSIZE
#178776cfc3dba9 Cleanup ZIO_FLAG_IO_RETRY vs TRYHARD usage
#17885e63d026b9 cmd/zpool cstyle issues
#17890b4f073b5a Add BRT support to zpool prefetch command
#17903baefe098e ZIO: Set minimum number of free issue threads to 32
#179066e12f0bd7 spa_misc: add an API for spa_namespace_lock
#17908e26b9fc87 FreeBSD: Add support for _PC_CASE_INSENSITIVE
#17911 -multiple Update library ABI versions for v2.4.0
#179158aaed7dc4 BRT: Fix ranges to blocks conversion math
#17916cc5cae547 BRT: Increase block size from 4KB to 8KB
#1792172b2a9571 ZAP: Remove dmu_object_info_from_dnode() call
Obtained from: OpenZFS
OpenZFS commit: e63d026b91
Update vendor/libarchive to 3.8.2
Important bugfixes:
#2477 tar writer: fix replacing a regular file with a dir for
ARCHIVE_EXTRACT_SAFE_WRITES
#2659 lib: improve filter process handling
#2664 zip writer: fix a memory leak if write callback error early
#2665 lib: archive_read_data: handle sparse holes at end of file correctly
#2668 7zip: Fix out of boundary access
#2670 zip writer: fix writing with ZSTD compression
#2672 lib: fix error checking in writing files
#2678 zstd write filter: enable Zstandard's checksum feature
#2679 lib: handle possible errors from system calls
#2707 lib: avoid leaking file descriptors into subprocesses
#2713 RAR5 reader: fix multiple issues in extra field parsing function
#2716 RAR5 reader: early fail when file declares data for a dir entry
#2717 bsdtar: Allow filename to have CRLF endings
#2719 tar reader: fix checking the result of the strftime (CVE-2025-25724)
#2737 tar reader: fix an infinite loop when parsing V headers
#2742 lib: parse_date: handle dates in 2038 and beyond if time_t is big
enough
Obtained from: libarchive
Vendor commit: 7f53fce04e4e672230f4eb80b219af17975e4f83
Security: CVE-2025-25724
PR: 290303 (exp-run)
MFC after: 1 week
Important bugfixes:
#2477 tar writer: fix replacing a regular file with a dir for
ARCHIVE_EXTRACT_SAFE_WRITES
#2659 lib: improve filter process handling
#2664 zip writer: fix a memory leak if write callback error early
#2665 lib: archive_read_data: handle sparse holes at end of file correctly
#2668 7zip: Fix out of boundary access
#2670 zip writer: fix writing with ZSTD compression
#2672 lib: fix error checking in writing files
#2678 zstd write filter: enable Zstandard's checksum feature
#2679 lib: handle possible errors from system calls
#2707 lib: avoid leaking file descriptors into subprocesses
#2713 RAR5 reader: fix multiple issues in extra field parsing function
#2716 RAR5 reader: early fail when file declares data for a dir entry
#2717 bsdtar: Allow filename to have CRLF endings
#2719 tar reader: fix checking the result of the strftime (CVE-2025-25724)
#2737 tar reader: fix an infinite loop when parsing V headers
#2742 lib: parse_date: handle dates in 2038 and beyond if time_t is big
enough
Obtained from: libarchive
Vendor commit: 7f53fce04e4e672230f4eb80b219af17975e4f83
Security: CVE-2025-25724
Notable upstream pull request merges:
#17705545d66204 Fix a printf format specifier on FreeBSD/i386
#177083387d3409 Fix atomic-alignment warnings in libspl on FreeBSD/i386
#17719f319ff357 vdev_disk_close: take disk write lock before destroying it
#177321d2d81298 Refactor `zhack label repair` and fix `-c` regression on
nonzero TXG
#17764ea37c30fc zdb: Fix asize overflow in verify_livelist_allocs()
Obtained from: OpenZFS
OpenZFS commit: b2196fbedf
Notable upstream pull request merges:
#17227d64711c20 Detect a slow raidz child during reads
#17543 -multiple zfs allow send:raw
#17717bc0b5318a Prevent scrubbing a read-only pool
#17722cb5f9aa58 FreeBSD: Satisfy ASSERT_VOP_IN_SEQC()
#177293f4312a0a Fix two infinite loops if dmu_prefetch_max set to zero
#1773037cd30f71 Fix ddle memleak in ddt_log_load
#17733bc8bcfc71 Fix type in dbrrd_closest()
#177359b772f328 Fix time database update calculations
Obtained from: OpenZFS
OpenZFS commit: 3f4312a0a4
Notable upstream pull request merges:
#15869ee7c36264 Add description of default sorting behavior to zfs_list.8
#17375ced72fdd6 tunables: remove legacy FreeBSD aliases
#176001da2c30be Update pam_zfs_key.c default path for FreeBSD
#17632b6bd3228b Synchronize the update of feature refcount
#1764559f8f5dfe zfs_vnops_os.c: Add support for the _PC_CLONE_BLKSIZE name
#176650d54ae288 zdb: Fix format strings on 32-bit systems
#17673976f76534 Update compatibility.d files
#17699e3c3e86c0 Fix wrong dedup_table_size for legacy dedup
#17704e29bfa5bd Fix warnings about sha2_is_supported on FreeBSD/i386
#17706a2424312c Fix the build on 32-bit FreeBSD with GCC
Obtained from: OpenZFS
OpenZFS commit: 7939bad5e7
OpenZFS 2.4.0 rc1
Notable upstream pull request merges:
#1764394413bc75 zdb: Filter log spacemaps by vdev
#1765528ff57505 FreeBSD: satisfy VFS requirements for readdir()
#17658 -multiple dnode: fix how we track and check dirtyness
As OpenZFS 2.4 got branched, this is the last merge to main
until stable/15 is branched. stable/15 will receive updates
from the vendor/openzfs/zfs-2.4-release branch.
Obtained from: OpenZFS
OpenZFS commit: 00dfa094ac
OpenZFS tag: zfs-2.4.0-rc1
Notable upstream pull request merges:
#17058 -multiple Port AVX2 implementation of aes-gcm from BoringSSL
#17602077269bfe Fix Assert in dbuf_undirty, which triggers during
usage zap shrink
#17613d15143207 ZIL: Make allocations more flexible
#176185061f959d Retire zfs_autoimport_disable kmod option
#17166d3c1d27af zdb: better handling for corrupt block pointers
#176161ccae433e Allow vmem_alloc backed multilists
#17619e0e60d319 Better pack struct zio_prop
#17620152e34822 Silence zstd large allocation warning
#17622 -multiple ZIL: restore some things lost in "ZIL-crash" review
#17625 -multiple zvol: cleanup & fixup zvol destruction sequence and
locking
#17631885d929cf Fix missed assertion update in physical rewrite patch
#17642a9410ccbd Make zpool_find_config() report errors
#1764730a915efe zfs-send.8: mention combination of -c/-e flags and
zstd_compress feature
#176492c877e845 FreeBSD: Set st_rdev to NODEV, not 0, when not a device
(already backported)
Obtained from: OpenZFS
OpenZFS commit: a9410ccbd9
Notable upstream pull request merges:
#17398 -multiple ZIL: "crash" the ZIL if the pool suspends during fallback
#175850c376d0f5 Document the new '-a' zpool option
#1759003592417c SIMD: Don't require definition of `HAVE_XSAVE`
#17591 -multiple Prefer VERIFY0 over comparision with 0 or NULL
#17596 -multiple zvol: misc cleanups
#176052fd145b57 zvol: cleanup error handling and passthrough
Obtained from: OpenZFS
OpenZFS commit: 1d0b94c4e7
Notable upstream pull request merges:
#16853894edd084 Add TXG timestamp database
#17004 -multiple Implement dynamic gang header sizes
#17405dea0fc969 ZVOL: Return early, if volmode is ZFS_VOLMODE_NONE
on FreeBSD side
#17455cf146460c Default to zfs_bclone_wait_dirty=1
#17481523d9d600 Validate mountpoint on path-based unmount using statx
#1748292da9e0e9 ZVOL: Implement zvol_alloc() function on FreeBSD side
#17489dee62e074 spa: ZIO_TASKQ_ISSUE: Use symbolic priority
#17496bf846dcb7 Release topology restrictions on special/dedup
#174974e92aee23 Relax special_small_blocks restrictions
#17503ea38787f2 Revert "Fix incorrect expected error in ztest"
#17505be1e991a1 Allow and prefer special vdevs as ZIL
#17506ee0cb4cb8 ztest: Fix false positive of ENOSPC handling
#1750792d3b4ee2 zio: rename `io_reexecute` as `io_post`;
use it for the direct IO checksum error flag
#175086af8db61b metaslab: don't pass whole zio to throttle reserve APIs
#175184c2a7f85d FreeBSD: Add support for _PC_HAS_HIDDENSYSTEM
#17521d7ab07dfb ZIL: Force writing of open LWB on suspend
#17524b6e8db509 zpool/zfs: Add '-a|--all' option to scrub, trim,
initialize
#17531c1e51c55f Correct weight recalculation of space-based metaslabs
#17533d323fbf49 FreeBSD: zfs_putpages: don't undirty pages until
after write completes
#17536b21e04e8d Fix zdb pool/ with -k
#17537 -multiple Userspace tunables
#175402957eabbe Add support for FreeBSD's Solaris style extended
attribute interface
#175474bd7a2eaa zdb: fix checksum calculation for decompressed blocks
#17551 -multiple cleanup: remove var init/update
#175610f8a1105e Skip dbuf_evict_one() from dbuf_evict_notify()
for reclaim thread
#1756310a78e264 Faster checksum benchmark on system boot
#1756400ce064d8 spa: update blkptr diagram to include vdev padding
on encrypted blocks
#17565 -multiple Physical rewrite
#17566fc885f308 Don't use wrong weight when passivating group
#17572f70c85086 BRT: Fix ZAP entry endianness
#175750b6fd024a ZVOL: Unify zvol minors operations and improve error
handling
#17581cb5e7e097 range_tree: Provide more debug details upon unexpected
add/remove
#17587 -multiple Fix two issues with dynamic gang headers
Obtained from: OpenZFS
OpenZFS commit: 8302b6e32b
Notable upstream pull request merges:
#1746348ce292ea Clarify and restrict dmu_tx_assign() errors
#17484d461a67d0 Ensure that gang_copies is always at least as large
as copies
#174860a2163d19 FreeBSD: Ensure that z_pflags is initialized for
new znodes
#17488ea076d692 vdev_raidz_asize_to_psize: return psize, not asize
#1749069ee01aa4 Fix bug caused by rounding in vdev_raidz_asize_to_psize
Obtained from: OpenZFS
OpenZFS commit: 69ee01aa4b
libarchive 3.8.1
New features:
#2088 7-zip reader: improve self-extracting archive detection
#2137 zip writer: added XZ, LZMA, ZSTD and BZIP2 support
#2403 zip writer: added LZMA + RISCV BCJ filter
#2601 bsdtar: support --mtime and --clamp-mtime
#2602 libarchive: mbedtls 3.x compatibility
Security fixes:
#2422 tar reader: Handle truncation in the middle of a GNU long linkname
CVE-2024-57970
#2532 tar reader: fix unchecked return value in list_item_verbose()
CVE-2025-25724
#2532 unzip: fix null pointer dereference
CVE-2025-1632
#2568 warc: prevent signed integer overflow
#2584 rar: do not skip past EOF while reading
#2588 tar: fix overflow in build_ustar_entry
#2598 rar: fix double free with over 4 billion nodes
#2599 rar: fix heap-buffer-overflow
Important bugfixes:
#2399 7-zip reader: add SPARC filter support for non-LZMA compressors
#2405 tar reader: ignore ustar size when pax size is present
#2435 tar writer: fix bug when -s/a/b/ used more than once with b flag
#2459 7-zip reader: add POWERPC filter support for non-LZMA compressors
#2519 libarchive: handle ARCHIVE_FILTER_LZOP in archive_read_append_filter
#2539 libarchive: add missing seeker function to archive_read_open_FILE()
#2544 gzip: allow setting the original filename for gzip compressed files
#2564 libarchive: improve lseek handling
#2582 rar: support large headers on 32 bit systems
#2587 bsdtar: don't hardlink negative inode files together
#2596 rar: support large headers on 32 bit systems
#2606 libarchive: support @-prefixed Unix epoch timestamps as date strings
#2634 tar: Support negative time values with pax
#2637 tar: Keep block alignment after pax error
#2642 libarchive: fix FILE_skip regression
#2643 tar: Handle extra bytes after sparse entries
#2649 compress: Prevent call stack overflow
#2651 iso9660: always check archive_string_ensure return value
CVE: CVE-2024-57970, CVE-2025-1632, CVE-2025-25724
PR: 286944 (exp-run, 3.8.0)
MFC after: 2 weeks
Notable upstream pull request merges:
#14876b048bfa9c Allow opt-in of zvol blocks in special class
#16486b6916f995 ARC: parallel eviction
#171691a8f5ad3b zvol: Enable zvol threading functionality on FreeBSD
#17209c17bdc491 More aggressively assert that db_mtx protects db.db_data
#17218734eba251 Wire O_DIRECT also to Uncached I/O
#1724649fbdd453 Introduce zfs rewrite subcommand
#17255b1ccab172 ARC: Avoid overflows in arc_evict_adj()
#17280848794503 zcp: get_prop: fix encryptionroot and encryption
#17301086105f4c Cause zpool scan resume commands to get logged in history
#17306246e5883b zfs_valstr: update zio_flag strings for
ZIO_FLAG_PREALLOCATED
#1730978628a5c1 FreeBSD: Use new SYSCTL_SIZEOF()
#1731489a8a9158 ARC: Notify dbuf cache about target size reduction
#173198b9c4e643 spa: clear checkpoint information during retry
#17339d5616ad34 Increase meta-dnode redundancy in "some" mode
#17340ea74cdedd Fix 2 bugs in non-raw send with encryption
#17342e55225be3 Add explicit DMU_DIRECTIO checks
#17343d8a33bc0a icp: Use explicit_memset() exclusively in gcm_clear_ctx()
#17344 -multiple libzfs_core: add ZFS_IOC_TRACE envvar to enable ioctl
tracing
#17348f0baaa329 arcstat: prevent ZeroDivisionError when L2ARC becomes
empty
#1735383fa80a55 dmu_objset_hold_flags() should call
dsl_dataset_rele_flags() on error
#17355 -multiple Allow txg_wait_synced_flags() and dmu_tx_assign()
to return when the pool suspends
#173615c30b2438 Fix null dereference in spa_vdev_remove_cancel_sync()
#17363ddf28f27c Fix off-by-one bug in range tree code
#1736706fa8f3f6 zfs_cmd: reorganise zfs_cmd_t to match original size
#173682a91d577b Expose dataset encryption status via fast stat path
#17372c464f1d01 Only interrupt active disk I/Os in failmode=continue
#173739d76950d6 ZIL: Improve write log size accounting
#17377 -multiple tunables: general code cleanup
#17379fa697b94e FreeBSD: Add posix_fadvise(POSIX_FADV_WILLNEED) support
#173843dfa98d01 ZVOL: Make zvol_inhibit_dev module parameter
platform-independent
Obtained from: OpenZFS
OpenZFS commit: 3084336ae4
New features:
#2088 7-zip reader: improve self-extracting archive detection
#2137 zip writer: added XZ, LZMA, ZSTD and BZIP2 support
#2403 zip writer: added LZMA + RISCV BCJ filter
#2601 bsdtar: support --mtime and --clamp-mtime
#2602 libarchive: mbedtls 3.x compatibility
Security fixes:
#2422 tar reader: Handle truncation in the middle of a GNU long linkname
CVE-2024-57970
#2532 tar reader: fix unchecked return value in list_item_verbose()
CVE-2025-25724
#2532 unzip: fix null pointer dereference
CVE-2025-1632
#2568 warc: prevent signed integer overflow
#2584 rar: do not skip past EOF while reading
#2588 tar: fix overflow in build_ustar_entry
#2598 rar: fix double free with over 4 billion nodes
#2599 rar: fix heap-buffer-overflow
Important bugfixes:
#2399 7-zip reader: add SPARC filter support for non-LZMA compressors
#2405 tar reader: ignore ustar size when pax size is present
#2435 tar writer: fix bug when -s/a/b/ used more than once with b flag
#2459 7-zip reader: add POWERPC filter support for non-LZMA compressors
#2519 libarchive: handle ARCHIVE_FILTER_LZOP in archive_read_append_filter
#2539 libarchive: add missing seeker function to archive_read_open_FILE()
#2544 gzip: allow setting the original filename for gzip compressed files
#2564 libarchive: improve lseek handling
#2582 rar: support large headers on 32 bit systems
#2587 bsdtar: don't hardlink negative inode files together
#2596 rar: support large headers on 32 bit systems
#2606 libarchive: support @-prefixed Unix epoch timestamps as date strings
Obtained from: libarchive
Vendor commit: 70ff28fcf04ec129a1d064f96e49aa57fcc90e37
CVE: CVE-2024-57970, CVE-2025-1632, CVE-2025-25724
Notable upstream pull request merges:
#17111246e5883b Implement allocation size ranges and use for gang leaves
#171235f5321eff Handle interaction between gang blocks, copies, and FDT
#17130 -multiple Implement default user/group/project quotas
#17164301da593a Fix lock reversal on device removal cancel
#17183367d34b3a Fix dspace underflow bug
#1718730cc2331f zed: Ensure spare activation after kernel-initiated device
removal
#1719111ca12dbd simd_powerpc.h: enable FPU on FreeBSD
#171925b29e70ae Remove mg_allocators
#17204a497c5fc8 Improve L2 caching control for prefetched indirects
#17205b14b3e398 Fix FDT rollback to not overwrite unnecessary fields
#172067be9fa259 Fix nonrot property being incorrectly unset
#1720809fc7bb47 Fix memory leaks in pool properties handling
#1721378a7c78bd Added fix for zpool get state segfaults with two or more
vdevs
#17228131df3bbf vdev_to_nvlist_iter: ignore draid parameters when matching
names
#17231f40ab9e39 Fix double spares for failed vdev
#1726427f3d9494 Sort the blocking snapshots lis
#17269f86d9af16 Fix race between resilver wait and offline/detach
#17273c8fa39b46 cred: properly pass and test creds on other threads
#17284a7de203c8 txg: generalise txg_wait_synced_sig() to
txg_wait_synced_flags()
Obtained from: OpenZFS
OpenZFS commit: 246e5883bb
Notable upstream pull request merges:
#17042ece35e0e6 zpool: allow relative vdev paths
#17046c43df8bbb vdev_file: unify FreeBSD and Linux implementations
#17064ee8803adc vdev_file: make FLUSH and TRIM asynchronous
#17066ecc44c45c include: move zio_priority_t into zfs.h
#17071ab3db6d15 arc: avoid possible deadlock in arc_read
#17079682c5f6a0 Fix wrong free function in arc_hdr_decrypt
#17080701093c44 Don't try to get mg of hole vdev in removal
#17081d7d274471 Better fill empty metaslabs
#17088a5fb5c55b spa: fix signature mismatch for spa_boot_init as
eventhandler required
#170897f05fface gcm_avx_init: zero the ghash state after hashing the IV
#17122fe674998b Check portable objset MAC even if local is zeroed
Obtained from: OpenZFS
OpenZFS commit: fe674998bb
Notable upstream pull request merges:
#16857387ed5ca4 Add recursive dataset mounting and unmounting support
to pam_zfs_key
#16929c2458ba92 optimize recv_fix_encryption_hierarchy()
#1698012f0baf34 Make the vfs.zfs.vdev.raidz_impl sysctl cross-platform
#1698640496514b Expand fragmentation table to reflect larger possibile
allocation sizes
#1700388020b993 Add kstats tracking gang allocations
#1701321205f648 Avoid ARC buffer transfrom operations in prefetch
#17016390f6c119 zio: lock parent zios when updating wait counts on
reexecute
#17029b8c73ab78 zio: do no-op injections just before handing off to vdevs
#170376a2f7b384 Fix metaslab group fragmentation math
#17040b901d4a0b Update the dataset name in handle after zfs_rename
Obtained from: OpenZFS
OpenZFS commit: 6a2f7b3844
Notable upstream pull request merges:
#1685119a04e5ad BRT: Check bv_mos_entries in brt_entry_lookup()
#168546c9b4f18d Fix DR_OVERRIDDEN use-after-free race in dbuf_sync_leaf
#16855fbea92432 flush: don't report flush error when disabling flush
support
#16862ecc0970e3 backtrace: fix off-by-one on string output
#16864939e0237c Too many vdev probe errors should suspend pool
#16868ff6266ee9 Fix use-afer-free regression in RAIDZ expansion
#16871acda137d8 simd_stat: fix undefined CONFIG_KERNEL_MODE_NEON error
on armel
#16877219a89cbb Skip iterating over snapshots for share properties
#16881ab7cbbe78 zprop: fix value help for ZPOOL_PROP_CAPACITY
#16883f00a57a78 zfs_main: fix alignment on props usage output
#16887 -multiple userprops: make clearing pool & vdev userprops work
the same
#16888c37a2ddaa microzap: set hard upper limit of 1M
#168901acd24696 Fix readonly check for vdev user properties
#169019dd5fe109 zvol: implement platform-independent part of block cloning
#1690954126fdb5 set zfs_arc_shrinker_limit to 0 by default
#1691225238baad Add missing zfs_exit() when snapdir is disabled
#16918478b09577 zfs_vnops_os.c: fallocate is valid but not supported
on FreeBSD
#16921c02e1cf05 vdev_open: clear async remove flag after reopen
#16923dc0324bfa fix: make zfs_strerror really thread-safe and portable
Obtained from: OpenZFS
OpenZFS commit: b8e09c7007
Notable upstream pull request merges:
#1621544446dccd During pool export flush the ARC asynchronously
#163014b4e346b9 Add ability to scrub from last scrubbed txg
#167550ffa6f346 zdb: show dedup table and log attributes
#168011cd2419ec Fix race in libzfs_run_process_impl
#16814a01504b35 Improve speculative prefetcher for block cloning
#16819a44eaf169 Optimize RAIDZ expansion
#16825e8b333e4d Fix false assertion in dmu_tx_dirty_buf() on cloning
#168296e3c109bc Fix regression in dmu_buf_will_fill()
#168322507db612 zdb_il: use flex array member to access ZIL records
#168340e020bf3e FreeBSD: Remove an incorrect assertion in zfs_getpages()
#16836c33a55b0c Allow dsl_deadlist_open() return errors
Obtained from: OpenZFS
OpenZFS commit: e0039c7057
Notable upstream pull request merges:
#16643 -multiple Change rangelock handling in FreeBSD's zfs_getpages()
#1669746c4f2ce0 dsl_dataset: put IO-inducing frees on the pool deadlist
#16740 -multiple BRT: Rework structures and locks to be per-vdev
#16743a60ed3822 L2ARC: Move different stats updates earlier
#167588dc452d90 Fix some nits in zfs_getpages()
#16759534688948 Remove hash_elements_max accounting from DBUF and ARC
#167669a81484e3 ZAP: Reduce leaf array and free chunks fragmentation
#16773457f8b76e BRT: More optimizations after per-vdev splitting
#167820ca82c568 L2ARC: Stop rebuild before setting spa_final_txg
#16785d76d79fd2 zio: Avoid sleeping in the I/O path
#16791ae1d11882 BRT: Clear bv_entcount_dirty on destroy
#16796b3b0ce64d FreeBSD: Lock vnode in zfs_ioctl()
#16797d0a91b9f8 FreeBSD: Reduce copy_file_range() source lock to shared
Obtained from: OpenZFS
OpenZFS commit: d0a91b9f88
Notable upstream pull request merges:
#16244acb6e71ed Added output to `zpool online` and `offline`
#1668494a03dd1e Pack dmu_buf_impl_t by 16 bytes
#166906187b1943 On the first vdev open ignore impossible ashift hints
#16692673efbbf5 zdb: add extra -T flag to show histograms of BRT refcounts
#166932bf152021 Fix gcc uninitialized warning in FreeBSD zio_crypt.c
#16694b16e09619 Reduce dirty records memory usage
#167015945676bc ZFS send should use spill block prefetched from
send_reader_thread
#167341c9a4c8cb Fix user properties output for zpool list
Obtained from: OpenZFS
OpenZFS commit: 1c9a4c8cb4
Notable upstream pull request merges:
#16598b4e4cbeb2 Always validate checksums for Direct I/O reads
#16603cefef28e9 vdev_id: multi-lun disks & slot num zero pad
#16613ab777f436 Return boolean_t in inline functions of
lib/libspl/include/sys/uio.h
#16616efeb60b86 FreeBSD: ignore some includes when not building kernel
#16617ca0141f32 zpool/zfs: restore -V & --version options
#166327bf525530 zpool/zfs: allow --json wherever -j is allowed
#166357e4be9275 zdb: fix printf format in dump_zap()
#1664048dfe3974 Fallback to strerror() when strerror_l() isn't available
#1665038a04f0a7 freebsd: Use compiler.h from FreeBSD's base's linuxkpi
#16664fba6a9069 zfs_debug: Restore log size limit for userspace
#16665fba6a9069 Fix compile-time warnings caused by duplicate struct
typedefs
#16667b2f6de7b5 zdb: show bp in uberblock dump
Obtained from: OpenZFS
OpenZFS commit: b2f6de7b58
Libarchive 3.7.7
Security fixes:
#2158 rpm: calculate huge header sizes correctly
#2160 util: fix out of boundary access in mktemp functions
#2168 uu: stop processing if lines are too long
#2174 lzop: prevent integer overflow
#2172 rar4: protect copy_from_lzss_window_to_unp() (CVE-2024-20696)
#2175 unzip: unify EOF handling
#2179 rar4: fix out of boundary access with large files
#2203 rar4: fix OOB access with unicode filenames
#2210 rar4: add boundary checks to rgb filter
#2248 rar4: fix OOB in delta filter
#2249 rar4: fix OOB in audio filter
#2256 fix multiple vulnerabilities identified by SAST
#2258 cpio: ignore out-of-range gid/uid/size/ino and harden AFIO parsing
#2265 rar5: clear 'data ready' cache on window buffer reallocs
#2269 rar4: fix CVE-2024-26256 (CVE-2024-26256)
#2330 iso: be more cautious about parsing ISO-9660 timestamps
#2343 tar: clean up linkpath between entries
#2364 tar: don't crash on truncated tar archives
#2366 gzip: prevent a hang when processing a malformed gzip inside a gzip
#2377 tar: fix two leaks in tar header parsing
Important bugfixes:
#2096 rar5: report encrypted entries
#2150 xar: fix another infinite loop and expat error handling
#2173 shar: check strdup return value
#2161 lha: fix integer truncation on 32-bit systems
#2338 tar: fix memory leaks when processing symlinks or parsing pax headers
#2245 7zip: fix issue when skipping first file in 7zip archive that
is a multiple of 65536 bytes
#2252 7-zip: read/write symlink paths as UTF-8
#2259 rar5: don't try to read rediculously long names
#2290 ar: fix archive entries having no type
#2360 tar: fix truncation of entry pathnames in specific archives
CVE: CVE-2024-20696, CVE-2024-26256
PR: 282047 (exp-run)
MFC after: 1 week
Security fixes:
#2364 tar: don't crash on truncated tar archives
#2366 gzip: prevent a hang when processing a malformed gzip inside a gzip
#2377 tar: fix two leaks in tar header parsing
Important bugfixes:
#2096 rar5: report encrypted entries
#2252 7-zip: read/write symlink paths as UTF-8
#2360 tar: fix truncation of entry pathnames in specific archives
Obtained from: libarchive
Vendor commit: b439d586f53911c84be5e380445a8a259e19114c
When compiling zdb.c on 32-bit platforms, a format conversion error
is reported for a printf() in dump_zap(). Change %l to macro
%" PRIu64 " to match the platform size of a 64-bit unsigned integer.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Martin Matuska <[email protected]>
Closes#16635
Notable upstream pull request merges:
#9416 -multiple zio_compress: introduce max size threshold
#10018a10e552b9 Adding Direct IO Support
#15147e419a63bf xattr dataset prop: change defaults to sa
#154547e957fde7 send/recv: open up additional stream feature flags
#158100d77e738e Defer resilver only when progress is above a threshold
#159213cf2bfa57 Allocate zap_attribute_t from kmem instead of stack
#16483 -multiple dmu_objset: replace dnode_hash impl with cityhash4
#164858be2f4c3d zio_resume: log when unsuspending the pool
#1649188433e640 sys/types32.h: Remove struct timeval32 from libspl header
#16496f245541e2 zfs_file: implement zfs_file_deallocate for FreeBSD 14
#16511308f7c2f1 Fix an uninitialized data access
#1652929c9e6c32 Fix handling of DNS names with '-' in them for sharenfs
#16531ddf5f34f0 Avoid fault diagnosis if multiple vdevs have errors
#165396f50f8e16 zfs_log: add flex array fields to log record structs
#16546d40d40913 Evicting too many bytes from MFU metadata
#165513014dcb76 Reduce and handle EAGAIN errors on AIO label reads
#1655480645d658 FreeBSD: restore zfs_znode_update_vfs()
#16565832f66b21 FreeBSD: Sync taskq_cancel_id() returns with Linux
#1656748d1be254 Properly release key in spa_keystore_dsl_key_hold_dd()
#16569141368a4b Restrict raidz faulted vdev count
#16583c84a37ae9 lua: add flex array field to TString type
#1658486737c592 Avoid computing strlen() inside loops
#16587d34d4f97a snapdir: add 'disabled' value to make .zfs inaccessible
#16593224393a32 feature: large_microzap
#16597412105977 Temporarily disable Direct IO by default
#166054ebe674d9 ARC: Cache arc_c value during arc_evict()
Backported pull request merges:
#16613ab777f436 Return boolean_t in inline functions of
lib/libspl/include/sys/uio.h
#16616efeb60b86 FreeBSD: ignore some includes when not building kernel
#16635 ---TBD--- zdb: fix printf format in dump_zap()
Obtained from: OpenZFS
OpenZFS commit: b109925820
OpenZFS tag: 2.3.0-rc1
The function abd_alloc_from_pages() is used only in kernel.
Excluding sys/vm.h, and vm/vm_page.h includes avoids dependency
problems.
Reviewed-by: Alexander Motin <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Martin Matuska <[email protected]>
Closes#16616
The inline functions zfs_dio_offset_aligned(), zfs_dio_size_aligned()
and zfs_dio_aligned() are declared as boolean_t but return the bool
type.
This fixes the build of FreeBSD.
Reviewed-by: Alexander Motin <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Martin Matuska <[email protected]>
Closes#16613
Security fixes:
#2330 iso: be more cautious about parsing ISO-9660 timestamps
#2343 tar: clean up linkpath between entries
Important bugfixes:
#2338 tar: fix memory leaks when processing symlinks or parsing pax headers
Obtained from: libarchive
Vendor commit: f0a0bc6b3046e34c9d6981f8c026da51fea12c89
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
At the moment, if bootrace profiling is enabled, autoboot is not
exported to the rc scripts. This causes fsck to not check the root
filesystem. To fix this, pass _boot, rc_fast and autoboot to the
boottrace process to mimic what diretly sourcing the rc.d scripts.
PR: 278993
Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1261
The __maybe_unused macro is defined in spl/sys/debug.h
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Martin Matuska <[email protected]>
Closes#16229
MacOS used FreeBSD-compatible getprogname() and pthread_getname_np().
But pthread_getthreadid_np() does not exist on MacOS. This implements
libspl_gettid() using pthread_threadid_np() to get the thread id
of the current thread.
Tested with FreeBSD GitHub actions
freebsd-src/.github/workflows/cross-bootstrap-tools.yml
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Rob Norris <[email protected]>
Signed-off-by: Martin Matuska <[email protected]>
Closes#16167
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
#2147 archive_string: clean up strncat_from_utf8_to_utf8 (36047967a)
#2153 archive_match: check archive_read_support_format_raw()
return value (0ce1b4c38)
#2154 archive_match: turn counter into flag (287e05d53)
#2155 lha: Do not allow negative file sizes (93b11caed)
#2156 tests: setenv LANG to en_US.UTF-8 in bsdunzip test_I.c (83e8b0ea8)
MFC after: 3 days
#2147 archive_string: clean up strncat_from_utf8_to_utf8 (36047967a)
#2153 archive_match: check archive_read_support_format_raw()
return value (0ce1b4c38)
#2154 archive_match: turn counter into flag (287e05d53)
#2155 lha: Do not allow negative file sizes (93b11caed)
#2156 tests: setenv LANG to en_US.UTF-8 in bsdunzip test_I.c (83e8b0ea8)
Obtained from: libarchive
Libarchive commit: 83e8b0ea8c3b07e07ac3dee90a8724565f8e53fd