aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/openzfs/module
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix BLAKE3 aarch64 assembly for FreeBSD and macOSTino Reichardt2023-04-272-4511/+4057
| | | | | | | | | | | The x18 register isn't useable within FreeBSD kernel space, so we have to fix the BLAKE3 aarch64 assembly for not using it. The source files are here: https://github.com/mcmilk/BLAKE3-tests Reviewed-by: Kyle Evans <kevans@FreeBSD.org> Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de> Closes #14728
* zfs: Fix positive ABD size assertion in abd_verify().Mateusz Guzik2023-04-261-1/+2
| | | | | | | | | | | | | | | | | | | | | This cherry-picks upstream: commit bba7cbf0a481ab16f9a9a4874b7dbd5682e4d3a4 Author: Alexander Motin <mav@FreeBSD.org> Date: Wed Apr 26 12:20:43 2023 -0400 Fix positive ABD size assertion in abd_verify(). Gang ABDs without childred are legal, and they do have zero size. For other ABD types zero size doesn't have much sense and likely not working correctly now. Reviewed-by: Igor Kozhukhov <igor@dilos.org> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #14795 Sponsored by: Rubicon Communications, LLC ("Netgate")
* zfs: make zfs_vfs_held() definition consistent with declarationDimitry Andric2023-04-251-1/+1
| | | | | | | | | | | | Noticed while attempting to change boolean_t into an actual bool: in include/sys/zfs_ioctl_impl.h, zfs_vfs_held() is declared to return a boolean_t, but in module/os/freebsd/zfs/zfs_ioctl_os.c it is defined to return an int. Make the definition match the declaration. Obtained from: https://github.com/openzfs/zfs/commit/62cc9d4f6 Reviewed by: jhb MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D39753
* zfs: Revert "Fix data race between zil_commit() and zil_suspend()"Mateusz Guzik2023-04-251-27/+0
| | | | | | | | | | | | | This reverts commit 4c856fb333ac57d9b4a6ddd44407fd022a702f00. To quote a pending upstream PR: This reverts commit 4c856fb to resolve a newly introduced deadlock which in practice is more disruptive that the issue this commit intended to address. Causes deadlocks described in https://github.com/openzfs/zfs/issues/14775 Sponsored by: Rubicon Communications, LLC ("Netgate")
* Add support for zpool user propertiesAllan Jude2023-04-251-41/+87
| | | | | | | | | | | | | | | | | | Usage: zpool set org.freebsd:comment="this is my pool" poolname Tests are based on zfs_set's user property tests. Also stop truncating property values at MAXNAMELEN, use ZFS_MAXPROPLEN. Reviewed by: markj Approved by: markj Co-authored-by: Mateusz Piotrowski <0mp@FreeBSD.org> Obtained from: OpenZFS 8eae2d214cfa Add support for zpool user properties Sponsored by: Beckhoff Automation GmbH & Co. KG. Sponsored by: Klara Inc. Differential Revision: https://reviews.freebsd.org/D39657
* zfs: fix up bogus checksums with blake3 in face of cpu migrationMateusz Guzik2023-04-251-2/+5
| | | | | | | | This is a temporary measure until a better fix is sorted out. Upstream report: https://github.com/openzfs/zfs/issues/14785 Reported by: Evgeniy Khramtsov Sponsored by: Rubicon Communications, LLC ("Netgate")
* zfs/powerpc64: Fix big-endian powerpc64 asmJustin Hibbits2023-04-224-0/+61
| | | | | | | | | | The powerpc asm from openzfs assumes that big-endian is always ELFv1 and ELFv2 is always little-endian, while FreeBSD uses ELFv2 everywhere. Add the necessary bits to the checksum asm to work on big-endian ELFv2. This was also submitted upstream as PR#14779. Tested by: dbaio
* zfs: fix up EINVAL from getdirentries on .zfsMateusz Guzik2023-04-201-0/+11
| | | | PR: 270909
* zfs: add missing vn state transition for .zfsMateusz Guzik2023-04-201-0/+4
| | | | Reported by: des
* zfs: Add vfs.zfs.bclone_enabled sysctl.Pawel Jakub Dawidek2023-04-172-2/+10
| | | | | | | | | | Keep block cloning disabled by default for now, but allow to enable and use it after setting vfs.zfs.bclone_enabled to 1, so people can easily try it. Approved by: oshogbo Reviewed by: mm, oshogbo Differential Revision: https://reviews.freebsd.org/D39613
* zfs: Merge https://github.com/openzfs/zfs/pull/14739Pawel Jakub Dawidek2023-04-171-3/+1
| | | | | | | | | | | | | | The zfs_log_clone_range() function is never called from the zfs_clone_range_replay() function, so I assumed it is safe to assert that zil_replaying() is never TRUE here. It turns out zil_replaying() also returns TRUE when the sync property is set to disabled. Fix the problem by just returning if zil_replaying() returns TRUE. Reported by: Florian Smeets Signed-off-by: Pawel Jakub Dawidek pawel@dawidek.net Approved by: oshogbo, mm
* zfs: cherry-pick openzfs/zfs@c71fe7164Pawel Jakub Dawidek2023-04-171-2/+4
| | | | | | | | | | | | | | | Fix data corruption when cloning embedded blocks Don't overwrite blk_phys_birth, as for embedded blocks it is part of the payload. Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Pawel Jakub Dawidek <pawel@dawidek.net> Issue #13392 Closes #14739 Approved by: oshogbo, mm
* zfs: Revert "ZFS_IOC_COUNT_FILLED does unnecessary txg_wait_synced()"Mateusz Guzik2023-04-151-16/+5
| | | | | | | | | This reverts commit 519851122b1703b8445ec17bc89b347cea965bb9. It results in data corruption, see: https://github.com/openzfs/zfs/issues/14753 Sponsored by: Rubicon Communications, LLC ("Netgate")
* zfs: don't use zfs_freebsd_copy_file_rangeMateusz Guzik2023-04-151-1/+2
| | | | | | | | | | | | | | | | | There is one data corruption problem reported and fixed upstream, not cherry-picked here yet. On top of it the following fires under load: VERIFY(zil_replaying(zfsvfs->z_log, tx)); The patch which introduced the entire machinery is a revert candidate, but as the machinery came with a dedicated feature flag, doing so would render affected pools read-only at best. To be figured out. As a temporary bandaid at least stop the active usage. Note this patch does not make the feature disappear from zpool upgrade. Sponsored by: Rubicon Communications, LLC ("Netgate")
* openzfs: adopt to the new vn_lock_pair() interfaceKonstantin Belousov2023-04-071-1/+2
| | | | | Sponsored by: The FreeBSD Foundation MFC after: 1 week
* zfs: try to fallback early if can't do optimized copyMateusz Guzik2023-04-071-0/+8
| | | | | | Not complete, but already shaves on some locking. Sponsored by: Rubicon Communications, LLC ("Netgate")
* zfs: fix up EXDEV handling for clone_rangeMateusz Guzik2023-04-071-29/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | API contract requires VOPs to handle EXDEV internally, worst case by falling back to the generic copy routine. This broke with the recent changes. While here whack custom loop to lock 2 vnodes with vn_lock_pair, which provides the same functionality internally. write start/finish around it plays no role so got eliminated. One difference is that vn_lock_pair always takes an exclusive lock on both vnodes. I did not patch around it because current code takes an exclusive lock on the target vnode. zfs supports shared-locking for writes, so this serializes different calls to the routine as is, despite range locking inside. At the same time you may notice the source vnode can get some traffic if only shared-locked, thus once more this goes the safer route of exclusive-locking. Note this should be patched to use shared-locking for both once the feature is considered stable. Technically the switch to vn_lock_pair should be a separate change, but it would only introduce churn immediately whacked by the rest of the patch. [note: technically the review is still in progress, but so is the active breakage] Sponsored by: Rubicon Communications, LLC ("Netgate")
* zfs: add missing vop_fplookup_vexec assignmentsMateusz Guzik2023-04-061-0/+9
| | | | This happens to be a nop right now.
* zfs: fix null ap->a_fsizetd NULL pointer derefernceMartin Matuska2023-04-051-1/+1
| | | | | | | | Submitted by: rmacklem Reported by: cy Tested by: cy, mm Reviewed by: pjd, mm Differential revision: https://reviews.freebsd.org/D39418
* Revert "zfs: fall back if block_cloning feature is disabled"Martin Matuska2023-04-041-10/+7
| | | | This reverts commit 8ee579abe09ec1fe15c588fc9a08370b83b81cd6.
* zfs: fall back if block_cloning feature is disabledMartin Matuska2023-04-041-7/+10
| | | | | | | | | | | | | If block_cloning is disabled, or other errors from zfs_clone_range() return an EXDEV we should fall back to vn_generic_copy_file_range(). This fixes issues when copying files on the same dataset with block_cloning disabled. Upstreamed as pull request to OpenZFS. Reviewed by: Mateusz Guzik <mjguzik@gmail.com> OpenZFS pull request: 14713
* zfs: merge openzfs/zfs@431083f75Martin Matuska2023-04-03132-9828/+32901
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: 431083f75bdd3efaee992bdd672625ec7240d252
* Fix per-jail zfs.mount_snapshot settingAllan Jude2023-02-211-2/+14
| | | | | | | | | | | | When jail.conf set the nopersist flag during startup, it was incorrectly destroying the per-jail ZFS settings. PR: 260160 Reported by: imp (previous version), mm (upstream), freqlabs (upstream) MFC after: immediately Sponsored by: Modirum MDPay Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D38662
* zfs: merge openzfs/zfs@57cfae4a2 (master)Martin Matuska2023-02-1629-125/+355
| | | | | | | | | | | | | | | | | | Notable upstream pull request merges: #13816 Fix a race condition in dsl_dataset_sync() when activating features #14402 Prefetch on deadlists merge #14410 Improve resilver ETAs #14428 Resilver performance tuning #14439 Resolve WS-2021-0184 vulnerability in zstd #14440 EIO caused by encryption + recursive gang #14448 Fix console progress reporting for recursive send #14454 Improve arc_read() error reporting #14460 Restore FreeBSD to use .rodata #14474 Reduce need for contiguous memory for ioctls Obtained from: OpenZFS OpenZFS commit: 57cfae4a2f04aaff10c45b3f7975e0fe3ef3e8b8
* zfs: merge openzfs/zfs@9cd71c860 (master)Martin Matuska2023-01-25103-1727/+1514
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notable upstream pull request merges: #13805 Configure zed's diagnosis engine with vdev properties #14110 zfs list: Allow more fields in ZFS_ITER_SIMPLE mode #14121 Batch enqueue/dequeue for bqueue #14123 arc_read()/arc_access() refactoring and cleanup #14159 Bypass metaslab throttle for removal allocations #14243 Implement uncached prefetch #14251 Cache dbuf_hash() calculation #14253 Allow reciever to override encryption property in case of replication #14254 Restrict visibility of per-dataset kstats inside FreeBSD jails #14255 Zero end of embedded block buffer in dump_write_embedded() #14263 Cleanups identified by CodeQL and Coverity #14264 Miscellaneous fixes #14272 Change ZEVENT_POOL_GUID to ZEVENT_POOL to display pool names #14287 FreeBSD: Remove stray debug printf #14288 Colorize zfs diff output #14289 deadlock between spa_errlog_lock and dp_config_rwlock #14291 FreeBSD: Fix potential boot panic with bad label #14292 Add tunable to allow changing micro ZAP's max size #14293 Turn default_bs and default_ibs into ZFS_MODULE_PARAMs #14295 zed: add hotplug support for spare vdevs #14304 Activate filesystem features only in syncing context #14311 zpool: do guid-based comparison in is_vdev_cb() #14317 Pack zrlock_t by 8 bytes #14320 Update arc_summary and arcstat outputs #14328 FreeBSD: catch up to 1400077 #14376 Use setproctitle to report progress of zfs send #14340 Remove some dead ARC code #14358 Wait for txg sync if the last DRR_FREEOBJECTS might result in a hole #14360 libzpool: fix ddi_strtoull to update nptr #14364 Fix unprotected zfs_znode_dmu_fini #14379 zfs_receive_one: Check for the more likely error first #14380 Cleanup of dead code suggested by Clang Static Analyzer #14397 Avoid passing an uninitialized index to dsl_prop_known_index #14404 Fix reading uninitialized variable in receive_read #14407 free_blocks(): Fix reports from 2016 PVS Studio FreeBSD report #14418 Introduce minimal ZIL block commit delay #14422 x86 assembly: fix .size placement and replace .align with .balign Obtained from: OpenZFS OpenZFS commit: 9cd71c8604d52def22ffaddc35755712f0fb9349
* vfs: add the concept of vnode state transitionsMateusz Guzik2022-12-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | To quote from a comment above vput_final: <quote> * XXX Some filesystems pass in an exclusively locked vnode and strongly depend * on the lock being held all the way until VOP_INACTIVE. This in particular * happens with UFS which adds half-constructed vnodes to the hash, where they * can be found by other code. </quote> As is there is no mechanism which allows filesystems to denote that a vnode is fully initialized, consequently problems like the above are only found the hard way(tm). Add rudimentary support for state transitions, which in particular allow to assert the vnode is not legally unlocked until its fate is decided (either construction finishes or vgone is called to abort it). The new field lands in a 1-byte hole, thus it does not grow the struct. Bump __FreeBSD_version to 1400077 Reviewed by: kib (previous version) Tested by: pho Differential Revision: https://reviews.freebsd.org/D37759
* zfs: merge openzfs/zfs@59493b63c (master)Martin Matuska2022-12-0739-186/+329
| | | | | | | | | | | | | | | | | | | | | | | | | Notable upstream pull request merges: #13782 Fix setting the large_block feature after receiving a snapshot #14157 FreeBSD: stop using buffer cache-only routines on sync #14172 zed: post a udev change event from spa_vdev_attach() #14181 zed: unclean disk attachment faults the vdev #14190 Bump checksum error counter before reporting to ZED #14196 Remove atomics from zh_refcount #14197 Don't leak packed recieved proprties #14198 Switch dnode stats to wmsums #14199 Remove few pointer dereferences in dbuf_read() #14200 Micro-optimize zrl_remove() #14204 Lua: Fix bad bitshift in lua_strx2number() #14212 Zstd fixes #14218 Avoid a null pointer dereference in zfs_mount() on FreeBSD #14235 nopwrites on dmu_sync-ed blocks can result in a panic #14236 zio can deadlock during device removal #14247 Micro-optimize fletcher4 calculations #14261 FreeBSD: zfs_register_callbacks() must implement error check correctly Obtained from: OpenZFS OpenZFS commit: 59493b63c18ea223857066218d6a58b67eb88159
* zfs: workaround panic on rootfs mountMartin Matuska2022-11-171-1/+9
| | | | | | The import of OpenZFS PR 13758 causes a panic in zfsctl_is_node() if ZFS is mounting as root filesystem. This implements a workaround until the issue is resolved by authors.
* zfs: merge openzfs/zfs@2163cde45Martin Matuska2022-11-16115-962/+2185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notable upstream pull request merges: #13680 Add options to zfs redundant_metadata property #13758 Allow mounting snapshots in .zfs/snapshot as a regular user #13838 quota: disable quota check for ZVOL #13839 quota: extend quota for dataset #13973 Fix memory leaks in dmu_send()/dmu_send_obj() #13977 Avoid unnecessary metaslab_check_free calling #13978 PAM: Fix unchecked return value from zfs_key_config_load() #13979 Handle possible null pointers from malloc/strdup/strndup() #13997 zstream: allow decompress to fix metadata for uncompressed records #13998 zvol_wait logic may terminate prematurely #14001 FreeBSD: Fix a pair of bugs in zfs_fhtovp() #14003 Stop ganging due to past vdev write errors #14039 Optimize microzaps #14050 Fix draid2+2s metadata error on simultaneous 2 drive failures #14062 zed: Avoid core dump if wholedisk property does not exist #14077 Propagate extent_bytes change to autotrim thread #14079 FreeBSD: vn_flush_cached_data: observe vnode locking contract #14093 Fix ARC target collapse when zfs_arc_meta_limit_percent=100 #14106 Add ability to recompress send streams with new compression algorithm #14119 Deny receiving into encrypted datasets if the keys are not loaded #14120 Fix arc_p aggressive increase #14129 zed: Prevent special vdev to be replaced by hot spare #14133 Expose zfs_vdev_open_timeout_ms as a tunable #14135 FreeBSD: Fix out of bounds read in zfs_ioctl_ozfs_to_legacy() #14152 Adds the `-p` option to `zfs holds` #14161 Handle and detect #13709's unlock regression Obtained from: OpenZFS OpenZFS commit: 2163cde450d0898b5f7bac16afb4e238485411ff
* zfs: Fix a pair of bugs in zfs_fhtovp()Mark Johnston2022-10-241-1/+2
| | | | | | | | | | | | | | This cherry-picks upstream ed566bf1cd0bdbf85e8c63c1c119e3d2ef5db1f6 - Add a zfs_exit() call in an error path, otherwise a lock is leaked. - Remove the fid_gen > 1 check. That appears to be Linux-specific: zfsctl_snapdir_fid() sets fid_gen to 0 or 1 depending on whether the snapshot directory is mounted. On FreeBSD it fails, making snapshot dirs inaccessible via NFS. PR: 266236 MFC after: 3 days
* zfs: mix mismerge in zfs_znode_freeMateusz Guzik2022-10-081-5/+0
| | | | happens to be a noop
* zfs: merge openzfs/zfs@d62bafee9Martin Matuska2022-10-0464-441/+648
| | | | | | | | | | | | | | | Notable upstream pull request merges: #13857 Enforce "-F" flag on resuming recv of full/newfs on existing dataset #13928 Revert "Reduce dbuf_find() lock contention" #13928 Dynamically size dbuf hash mutex array #13930 zpool: Don't print "repairing" on force faulted drives #13938 Bring per_txg_dirty_frees_percent back to 30 #13939 Fix panic in dsl_process_sub_livelist for EINTR #13954 Fix bad free in skein code #13967 Fix potential NULL pointer dereference in dsl_dataset_promote_check() Obtained from: OpenZFS OpenZFS commit: d62bafee9fc38f8b9653c531e1861e83dcba4618
* Fix various places which cast a pointer to a uint64_t or vice versa.John Baldwin2022-09-281-1/+1
| | | | | | | GCC warns about the mismatched sizes on 32-bit platforms. Reviewed by: imp, markj Differential Revision: https://reviews.freebsd.org/D36752
* zfs: bring per_txg_dirty_frees_percent back to 30Mateusz Guzik2022-09-281-1/+1
| | | | | | | | | | | | | | | | | | This cherry-picks upstream eb9bec0a5d19abf9404f52081424fbb814e6188a The current value causes significant artificial slowdown during mass parallel file removal, which can be observed both on FreeBSD and Linux when running real workloads. Sample results from Linux doing make -j 96 clean after an allyesconfig modules build: before: 4.14s user 6.79s system 48% cpu 22.631 total after: 4.17s user 6.44s system 153% cpu 6.927 total FreeBSD results in the ticket. See https://github.com/openzfs/zfs/issues/13932
* zfs: merge openzfs/zfs@c629f0bf6Martin Matuska2022-09-2162-1145/+1605
| | | | | | | | | | | | | | | | | | | Notable upstream pull request merges: #13725 Fix BLAKE3 tuneable and module loading on Linux and FreeBSD #13756 FreeBSD: Organize sysctls #13773 FreeBSD: add kqfilter support for zvol cdev #13781 Importing from cachefile can trip assertion #13794 Apply arc_shrink_shift to ARC above arc_c_min #13798 Improve too large physical ashift handling #13799 Revert "Avoid panic with recordsize > 128k, raw sending and no large_blocks" #13802 Add zfs.sync.snapshot_rename #13831 zfs_enter rework #13855 zfs recv hangs if max recordsize is less than received recordsize Obtained from: OpenZFS OpenZFS commit: c629f0bf62e351355716f9870d6c2e377584b016
* zfs: stop passing LK_INTERLOCK to VOP_LOCKMateusz Guzik2022-09-191-1/+2
| | | | There is an ongoing effort to eliminate this feature.
* vfs: introduce V_PCATCH to stop abusing PCATCHMateusz Guzik2022-09-171-1/+1
|
* zfs: don't access nameidata unless namei succeededMateusz Guzik2022-09-171-10/+8
|
* vfs: always retain path buffer after lookupMateusz Guzik2022-09-171-1/+22
| | | | | | | | This removes some of the complexity needed to maintain HASBUF and allows for removing injecting SAVENAME by filesystems. Reviewed by: kib (previous version) Differential Revision: https://reviews.freebsd.org/D36542
* zfs: merge openzfs/zfs@a582d5299Martin Matuska2022-08-256-51/+144
| | | | | | | | | | | Notable upstream pull request merges: #13717 Fix zpool status in case of unloaded keys #13753 Prevent zevent list from consuming all of kernel memory #13767 arcstat: fix -p option #13785 Updates for snapshots_changed property Obtained from: OpenZFS OpenZFS commit: a582d52993134905f2e96cebe7aff410f29b1ad8
* zfs: merge openzfs/zfs@b3d0568cfMartin Matuska2022-08-13233-367/+1057
| | | | | | | | | | | | | | Notable upstream pull request merges: #9372 Implement a new type of zfs receive: corrective receive (-c) #13635 Add snapshots_changed as property #13636 Add support for per dataset zil stats and use wmsum counters #13643 Fix scrub resume from newly created hole #13670 Fix memory allocation for the checksum benchmark #13695 Skip checksum benchmarks on systems with slow cpu #13711 zpool: fix redundancy check after vdev removal Obtained from: OpenZFS OpenZFS commit: b3d0568cfd65458c92f7ab3d7bb709087992628e
* stand: Only compile decompression routinesWarner Losh2022-08-131-1/+7
| | | | | | | | | | | | | We don't need the compress rotuines, nor zstd_opt.c. Remove them. Expand the number of places we omit code for IN_LIBSA (which are FreeBSD specific). Due to the agressive optimization, though, this doesn't reduce the size of the loader. It does reduce the number of 'false positives' for places to omit to reduce the size as well as reducing the build time slightly. Sponsored by: Netflix Reviewed by: tsoome, delphij Differential Revision: https://reviews.freebsd.org/D36145
* zfs: fixup build on powerpc64leAlfredo Dal'Ava Junior2022-07-081-6/+2
| | | | | | | This complements 0a7fa9d11b2007331857c9575bd9b77d86c88fe4 removing a #warning added intentionally, replacing it by a "TODO" comment. PR: 265003
* zfs: fix powerpc64le buildPiotr Kubaj2022-07-081-2/+8
| | | | | PR: 265003 Reviewed by: alfredo (on IRC)
* zfs: merge openzfs/zfs@cb01da680Martin Matuska2022-07-0768-974/+1103
| | | | | | | | | | | | | | | | | Notable upstream pull request merges: #12438 Avoid panic with recordsize > 128k, raw sending and no large_blocks #13015 Fix dnode byteswapping #13256 Add a "zstream decompress" subcommand #13555 Scrub mirror children without BPs #13576 Several sorted scrub optimizations #13579 Fix and disable blocks statistics during scrub #13582 Several B-tree optimizations #13591 Avoid two 64-bit divisions per scanned block #13606 Avoid memory copies during mirror scrub #13613 Avoid memory copy when verifying raidz/draid parity Obtained from: OpenZFS OpenZFS commit: cb01da68057dcb9e612e8d2e97d058c46c3574af
* zfs: merge openzfs/zfs@deb121309Martin Matuska2022-06-2338-201/+23113
| | | | | | | | | | | | Notable upstream pull request merges: #12918 Introduce BLAKE3 checksums as an OpenZFS feature #13553 Reduce ZIO io_lock contention on sorted scrub #13537 Improve sorted scan memory accounting #13540 AVL: Remove obsolete branching optimizations #13563 FreeBSD: Improve crypto_dispatch() handling Obtained from: OpenZFS OpenZFS commit: deb1213098e2dc10e6eee5e5c57bb40584e096a6
* zfs: merge openzfs/zfs@b9d98453fMartin Matuska2022-06-0316-200/+519
| | | | | | | | | | | | | | | | | Notable upstream pull request merges: #12321 Fix inflated quiesce time caused by lwb_tx during zil_commit() #13244 zstd early abort #13360 Verify BPs as part of spa_load_verify_cb() #13452 More speculative prefetcher improvements #13466 Expose zpool guids through kstats #13476 Refactor Log Size Limit #13484 FreeBSD: libspl: Add locking around statfs globals #13498 Cancel in-progress rebuilds when we finish removal #13499 zed: Take no action on scrub/resilver checksum errors #13513 Remove wrong assertion in log spacemap Obtained from: OpenZFS OpenZFS commit: b9d98453f9387c413f91d1d9cdb0cba8e04dbd95
* zfs: merge openzfs/zfs@c0cf6ed67Martin Matuska2022-05-1865-1069/+2063
| | | | | | | | | | | | | | | | | | | Notable upstream pull request merges: #10662 zvol_wait: Ignore locked zvols #12789 Improve log spacemap load time #12812 Improved zpool status output, list all affected datasets #13277 FreeBSD: Use NDFREE_PNBUF if available #13302 Make zfs_max_recordsize default to 16M #13311 Fix error handling in FreeBSD's get/putpages VOPs #13345 FreeBSD: Fix translation from ABD to physical pages #13373 zfs: holds: dequadratify #13375 Corrected edge case in uncompressed ARC->L2ARC handling #13388 Improve mg_aliquot math #13405 Reduce dbuf_find() lock contention #13406 FreeBSD: use zero_region instead of allocating a dedicated page Obtained from: OpenZFS OpenZFS commit: c0cf6ed6792e545fd614c2a88cb53756db7e03f8
* zfs: use zero_region instead of allocating a dedicated pageMateusz Guzik2022-03-291-7/+3
|
* zfs: merge openzfs/zfs@bc3f12bfa (master) into mainMartin Matuska2022-03-29124-1344/+1238
| | | | | | | | | | | | | | Notable upstream pull request merges: #12083 libzfs: FreeBSD doesn't resize partitions for you #13106 add physical device size to SIZE column in 'zpool list -v' #13158 Allow zfs send to exclude datasets #13190 module: zfs: zio_inject: zio_match_handler: don't << -1 #13219 FreeBSD: add missing replay check to an assert in zfs_xvattr_set #13220 module: freebsd: avoid a taking a destroyed lock in zfs_zevent bits #13221 Fix ACL checks for NFS kernel server Obtained from: OpenZFS OpenZFS commit: bc3f12bfac152a0c28951cec92340ba14f9ccee9