git: 2a58b312b62f - main - zfs: merge openzfs/zfs@431083f75

From: Martin Matuska <mm_at_FreeBSD.org>
Date: Mon, 03 Apr 2023 15:13:06 UTC
The branch main has been updated by mm:

URL: https://cgit.FreeBSD.org/src/commit/?id=2a58b312b62f908ec92311d1bd8536dbaeb8e55b

commit 2a58b312b62f908ec92311d1bd8536dbaeb8e55b
Merge: b98fbf3781df 431083f75bdd
Author:     Martin Matuska <mm@FreeBSD.org>
AuthorDate: 2023-04-03 14:49:30 +0000
Commit:     Martin Matuska <mm@FreeBSD.org>
CommitDate: 2023-04-03 14:49:30 +0000

    zfs: merge openzfs/zfs@431083f75
    
    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

 cddl/lib/libicp/Makefile                           |   52 +-
 cddl/lib/libicp_rescue/Makefile                    |   50 +-
 cddl/lib/libzfs/Makefile                           |    1 -
 cddl/lib/libzpool/Makefile                         |    5 +-
 cddl/usr.sbin/zdb/Makefile                         |    2 +-
 cddl/usr.sbin/zfsd/case_file.cc                    |    5 +-
 cddl/usr.sbin/zfsd/vdev.cc                         |    4 +-
 cddl/usr.sbin/zfsd/zfsd_exception.cc               |    2 +-
 lib/libbe/be.c                                     |    4 +-
 sbin/bectl/bectl.c                                 |    9 +-
 sbin/bectl/bectl_jail.c                            |    5 +-
 sbin/bectl/bectl_list.c                            |   15 +-
 stand/libsa/zfs/Makefile.inc                       |   22 +-
 stand/libsa/zfs/blake3_impl_hack.c                 |    2 +
 sys/conf/files                                     |   15 +-
 sys/conf/files.amd64                               |   15 +
 sys/conf/files.arm                                 |    5 +
 sys/conf/files.arm64                               |   15 +
 sys/conf/files.powerpc                             |    9 +
 sys/contrib/openzfs/.github/workflows/README.md    |   51 +
 .../openzfs/.github/workflows/checkstyle.yaml      |    6 +-
 .../.github/workflows/scripts/generate-summary.sh  |  119 +
 .../workflows/scripts/reclaim_disk_space.sh        |   20 -
 .../workflows/scripts/setup-dependencies.sh        |   93 +
 .../.github/workflows/scripts/setup-functional.sh  |   24 +
 .../openzfs/.github/workflows/zfs-linux-tests.yml  |  124 +
 .../openzfs/.github/workflows/zfs-linux.yml        |   64 +
 .../.github/workflows/zfs-tests-functional.yml     |   84 -
 .../openzfs/.github/workflows/zfs-tests-sanity.yml |   80 -
 sys/contrib/openzfs/.github/workflows/zloop.yml    |   63 -
 sys/contrib/openzfs/cmd/arc_summary                |  101 +-
 sys/contrib/openzfs/cmd/mount_zfs.c                |    2 +-
 sys/contrib/openzfs/cmd/zdb/Makefile.am            |    3 +
 sys/contrib/openzfs/cmd/zdb/zdb.c                  |  190 +-
 sys/contrib/openzfs/cmd/zdb/zdb_il.c               |   19 +
 sys/contrib/openzfs/cmd/zed/agents/fmd_api.c       |    6 +-
 sys/contrib/openzfs/cmd/zed/agents/zfs_agents.c    |    6 +-
 sys/contrib/openzfs/cmd/zed/agents/zfs_diagnosis.c |    4 +-
 sys/contrib/openzfs/cmd/zed/agents/zfs_mod.c       |   26 +-
 sys/contrib/openzfs/cmd/zed/agents/zfs_retire.c    |    8 +-
 sys/contrib/openzfs/cmd/zed/zed_disk_event.c       |   10 +-
 sys/contrib/openzfs/cmd/zed/zed_event.c            |    6 +-
 sys/contrib/openzfs/cmd/zfs/zfs_iter.c             |    2 +-
 sys/contrib/openzfs/cmd/zfs/zfs_main.c             |   70 +-
 sys/contrib/openzfs/cmd/zpool/zpool_iter.c         |    4 +-
 sys/contrib/openzfs/cmd/zpool/zpool_main.c         |  125 +-
 sys/contrib/openzfs/cmd/zpool/zpool_vdev.c         |   33 +-
 .../openzfs/cmd/zpool_influxdb/zpool_influxdb.c    |    6 +-
 sys/contrib/openzfs/cmd/ztest.c                    |   13 +-
 sys/contrib/openzfs/config/always-arch.m4          |    6 +-
 sys/contrib/openzfs/config/kernel-blk-queue.m4     |    4 +-
 .../openzfs/config/kernel-cpu_has_feature.m4       |   29 +
 .../openzfs/config/kernel-flush_dcache_page.m4     |   26 +
 .../openzfs/config/kernel-generic_io_acct.m4       |   98 +-
 sys/contrib/openzfs/config/kernel.m4               |   12 +
 sys/contrib/openzfs/config/user.m4                 |    2 +-
 .../contrib/debian/openzfs-zfsutils.install        |    1 +
 sys/contrib/openzfs/contrib/initramfs/scripts/zfs  |   11 +-
 .../contrib/pyzfs/libzfs_core/_constants.py        |    1 +
 sys/contrib/openzfs/include/Makefile.am            |    4 +
 sys/contrib/openzfs/include/libnvpair.h            |   11 +-
 sys/contrib/openzfs/include/libzfs.h               |    2 +-
 sys/contrib/openzfs/include/libzutil.h             |    6 +
 sys/contrib/openzfs/include/os/freebsd/Makefile.am |    3 +-
 .../openzfs/include/os/freebsd/spl/sys/cmn_err.h   |   33 +
 .../openzfs/include/os/freebsd/spl/sys/mod_os.h    |    6 +
 .../openzfs/include/os/freebsd/spl/sys/simd.h      |    6 +
 .../include/os/freebsd/spl/sys/simd_aarch64.h      |   84 +
 .../openzfs/include/os/freebsd/spl/sys/simd_arm.h  |   74 +
 .../include/os/freebsd/spl/sys/simd_powerpc.h      |   50 +-
 .../openzfs/include/os/freebsd/spl/sys/simd_x86.h  |   18 +
 .../openzfs/include/os/freebsd/spl/sys/vnode.h     |    4 +
 .../openzfs/include/os/freebsd/zfs/sys/sha2.h      |  197 -
 .../include/os/freebsd/zfs/sys/zfs_znode_impl.h    |    5 +-
 sys/contrib/openzfs/include/os/linux/Makefile.am   |    2 +-
 .../include/os/linux/kernel/linux/blkdev_compat.h  |   10 +-
 .../include/os/linux/kernel/linux/dcache_compat.h  |   15 +
 .../include/os/linux/kernel/linux/mod_compat.h     |    1 +
 .../openzfs/include/os/linux/kernel/linux/simd.h   |    5 +-
 .../include/os/linux/kernel/linux/simd_aarch64.h   |   76 +-
 .../include/os/linux/kernel/linux/simd_arm.h       |   80 +
 .../include/os/linux/kernel/linux/simd_powerpc.h   |   66 +-
 .../include/os/linux/kernel/linux/simd_x86.h       |   15 +
 sys/contrib/openzfs/include/os/linux/spl/rpc/xdr.h |    3 -
 .../openzfs/include/os/linux/spl/sys/cmn_err.h     |   17 +
 .../openzfs/include/os/linux/spl/sys/mutex.h       |    1 +
 .../openzfs/include/os/linux/zfs/sys/sha2.h        |  148 -
 .../include/os/linux/zfs/sys/zfs_vnops_os.h        |    2 +-
 .../include/os/linux/zfs/sys/zfs_znode_impl.h      |    3 +-
 sys/contrib/openzfs/include/sys/arc.h              |    1 -
 sys/contrib/openzfs/include/sys/arc_impl.h         |   44 +-
 sys/contrib/openzfs/include/sys/bitmap.h           |   93 +
 sys/contrib/openzfs/include/sys/blake3.h           |   26 +-
 sys/contrib/openzfs/include/sys/brt.h              |   62 +
 sys/contrib/openzfs/include/sys/dbuf.h             |    2 +
 sys/contrib/openzfs/include/sys/ddt.h              |    2 +
 sys/contrib/openzfs/include/sys/dmu.h              |    8 +
 sys/contrib/openzfs/include/sys/dmu_recv.h         |    4 +-
 sys/contrib/openzfs/include/sys/dmu_tx.h           |    1 +
 sys/contrib/openzfs/include/sys/dsl_dataset.h      |    1 -
 sys/contrib/openzfs/include/sys/edonr.h            |   41 +-
 sys/contrib/openzfs/include/sys/fs/zfs.h           |    4 +
 sys/contrib/openzfs/include/sys/nvpair.h           |   21 +-
 sys/contrib/openzfs/include/sys/sha2.h             |  127 +
 sys/contrib/openzfs/include/sys/spa.h              |    5 +-
 sys/contrib/openzfs/include/sys/spa_impl.h         |    2 +
 sys/contrib/openzfs/include/sys/vdev.h             |    5 +-
 sys/contrib/openzfs/include/sys/vdev_impl.h        |    1 +
 sys/contrib/openzfs/include/sys/vdev_trim.h        |    1 +
 sys/contrib/openzfs/include/sys/zfs_debug.h        |    1 +
 sys/contrib/openzfs/include/sys/zfs_impl.h         |   69 +
 sys/contrib/openzfs/include/sys/zfs_vnops.h        |    4 +
 sys/contrib/openzfs/include/sys/zfs_znode.h        |    3 +
 sys/contrib/openzfs/include/sys/zil.h              |   25 +-
 sys/contrib/openzfs/include/sys/zil_impl.h         |    1 +
 sys/contrib/openzfs/include/sys/zio.h              |    7 +-
 sys/contrib/openzfs/include/sys/zio_checksum.h     |    6 +-
 sys/contrib/openzfs/include/sys/zio_compress.h     |    2 +-
 sys/contrib/openzfs/include/sys/zio_impl.h         |   41 +-
 sys/contrib/openzfs/include/zfeature_common.h      |    1 +
 sys/contrib/openzfs/include/zfs_fletcher.h         |   27 +-
 sys/contrib/openzfs/lib/libicp/Makefile.am         |   28 +-
 sys/contrib/openzfs/lib/libnvpair/libnvpair.abi    | 4452 +++++-----
 sys/contrib/openzfs/lib/libnvpair/libnvpair.c      |   41 +-
 sys/contrib/openzfs/lib/libnvpair/libnvpair_json.c |    4 +-
 sys/contrib/openzfs/lib/libspl/include/Makefile.am |    1 -
 .../openzfs/lib/libspl/include/sys/cmn_err.h       |   34 +
 sys/contrib/openzfs/lib/libspl/include/sys/sha2.h  |  148 -
 sys/contrib/openzfs/lib/libspl/include/sys/simd.h  |  122 +-
 sys/contrib/openzfs/lib/libuutil/libuutil.abi      |  980 ++-
 sys/contrib/openzfs/lib/libzfs/Makefile.am         |    3 -
 sys/contrib/openzfs/lib/libzfs/libzfs.abi          | 8853 ++++++++++++++------
 sys/contrib/openzfs/lib/libzfs/libzfs_crypto.c     |   13 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c    |   30 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_diff.c       |    6 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_impl.h       |    2 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_import.c     |    2 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_iter.c       |    2 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_mount.c      |    2 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_pool.c       |   46 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_sendrecv.c   |   54 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_status.c     |    3 +-
 sys/contrib/openzfs/lib/libzfs/libzfs_util.c       |   17 +-
 .../openzfs/lib/libzfs/os/linux/libzfs_pool_os.c   |    2 +-
 .../openzfs/lib/libzfs_core/libzfs_core.abi        | 1838 ++--
 .../openzfs/lib/libzfsbootenv/libzfsbootenv.abi    |  507 +-
 .../openzfs/lib/libzfsbootenv/lzbe_device.c        |   17 +-
 sys/contrib/openzfs/lib/libzpool/Makefile.am       |    3 +-
 sys/contrib/openzfs/lib/libzpool/util.c            |    9 +-
 .../lib/libzutil/os/linux/zutil_import_os.c        |   12 +-
 sys/contrib/openzfs/lib/libzutil/zutil_import.c    |   48 +-
 sys/contrib/openzfs/lib/libzutil/zutil_import.h    |    4 +-
 sys/contrib/openzfs/man/Makefile.am                |    1 +
 sys/contrib/openzfs/man/man4/zfs.4                 |   82 +-
 sys/contrib/openzfs/man/man7/zpool-features.7      |   15 +
 sys/contrib/openzfs/man/man7/zpoolprops.7          |   27 +-
 sys/contrib/openzfs/man/man8/zdb.8                 |   28 +
 sys/contrib/openzfs/man/man8/zfs-receive.8         |   15 +-
 sys/contrib/openzfs/man/man8/zfs.8                 |    2 +
 sys/contrib/openzfs/man/man8/zpool-events.8        |   34 +-
 sys/contrib/openzfs/man/man8/zpool.8               |    2 +
 sys/contrib/openzfs/module/Kbuild.in               |   39 +-
 sys/contrib/openzfs/module/Makefile.bsd            |  219 +-
 sys/contrib/openzfs/module/avl/avl.c               |    6 +-
 .../openzfs/module/icp/algs/blake3/blake3.c        |    3 +-
 .../module/icp/algs/blake3/blake3_generic.c        |    6 +-
 .../openzfs/module/icp/algs/blake3/blake3_impl.c   |  423 +-
 .../openzfs/module/icp/algs/blake3/blake3_impl.h   |   31 +-
 .../openzfs/module/icp/algs/blake3/blake3_x86-64.c |  252 -
 sys/contrib/openzfs/module/icp/algs/edonr/edonr.c  |  783 +-
 .../module/icp/algs/edonr/edonr_byteorder.h        |  216 -
 sys/contrib/openzfs/module/icp/algs/modes/gcm.c    |  228 +-
 sys/contrib/openzfs/module/icp/algs/modes/modes.c  |   53 +-
 sys/contrib/openzfs/module/icp/algs/sha2/sha2.c    |  957 ---
 .../openzfs/module/icp/algs/sha2/sha256_impl.c     |  309 +
 .../openzfs/module/icp/algs/sha2/sha2_generic.c    |  562 ++
 .../openzfs/module/icp/algs/sha2/sha512_impl.c     |  285 +
 .../module/icp/asm-aarch64/sha2/sha256-armv8.S     | 1999 +++++
 .../module/icp/asm-aarch64/sha2/sha512-armv8.S     | 1558 ++++
 .../openzfs/module/icp/asm-arm/sha2/sha256-armv7.S | 2769 ++++++
 .../openzfs/module/icp/asm-arm/sha2/sha512-armv7.S | 1822 ++++
 .../openzfs/module/icp/asm-ppc64/sha2/sha256-p8.S  | 1505 ++++
 .../openzfs/module/icp/asm-ppc64/sha2/sha256-ppc.S | 2712 ++++++
 .../openzfs/module/icp/asm-ppc64/sha2/sha512-p8.S  | 1706 ++++
 .../openzfs/module/icp/asm-ppc64/sha2/sha512-ppc.S | 2958 +++++++
 .../module/icp/asm-x86_64/sha2/sha256-x86_64.S     | 5104 +++++++++++
 .../module/icp/asm-x86_64/sha2/sha256_impl.S       | 2090 -----
 .../module/icp/asm-x86_64/sha2/sha512-x86_64.S     | 4011 +++++++++
 .../module/icp/asm-x86_64/sha2/sha512_impl.S       | 2115 -----
 .../openzfs/module/icp/include/generic_impl.c      |  233 +
 .../openzfs/module/icp/include/modes/modes.h       |    2 +
 .../openzfs/module/icp/include/sha2/sha2_consts.h  |  219 -
 .../openzfs/module/icp/include/sha2/sha2_impl.h    |   27 +-
 sys/contrib/openzfs/module/icp/io/aes.c            |   25 +-
 sys/contrib/openzfs/module/icp/io/sha2_mod.c       |    1 -
 sys/contrib/openzfs/module/nvpair/fnvpair.c        |   12 +-
 sys/contrib/openzfs/module/nvpair/nvpair.c         |   27 +-
 sys/contrib/openzfs/module/os/freebsd/spl/sha224.h |   96 -
 sys/contrib/openzfs/module/os/freebsd/spl/sha256.h |   99 -
 .../openzfs/module/os/freebsd/spl/sha256c.c        |  378 -
 sys/contrib/openzfs/module/os/freebsd/spl/sha384.h |   96 -
 sys/contrib/openzfs/module/os/freebsd/spl/sha512.h |  101 -
 .../openzfs/module/os/freebsd/spl/sha512c.c        |  508 --
 .../openzfs/module/os/freebsd/spl/sha512t.h        |  143 -
 .../openzfs/module/os/freebsd/spl/spl_sysevent.c   |    4 +-
 sys/contrib/openzfs/module/os/freebsd/zfs/arc_os.c |    4 +-
 sys/contrib/openzfs/module/os/freebsd/zfs/spa_os.c |    2 +-
 .../openzfs/module/os/freebsd/zfs/sysctl_os.c      |   79 +-
 .../openzfs/module/os/freebsd/zfs/vdev_geom.c      |    2 +-
 .../openzfs/module/os/freebsd/zfs/zfs_ctldir.c     |    4 +-
 .../openzfs/module/os/freebsd/zfs/zfs_ioctl_os.c   |    2 +-
 .../openzfs/module/os/freebsd/zfs/zfs_vfsops.c     |    7 +-
 .../openzfs/module/os/freebsd/zfs/zfs_vnops_os.c   |  102 +-
 .../openzfs/module/os/freebsd/zfs/zfs_znode.c      |   41 +-
 .../openzfs/module/os/freebsd/zfs/zvol_os.c        |    3 +
 .../openzfs/module/os/linux/spl/spl-generic.c      |    2 +-
 sys/contrib/openzfs/module/os/linux/zfs/arc_os.c   |    2 +-
 .../openzfs/module/os/linux/zfs/qat_compress.c     |    2 +-
 .../openzfs/module/os/linux/zfs/zfs_vnops_os.c     |  172 +-
 .../openzfs/module/os/linux/zfs/zfs_znode.c        |    2 +-
 .../openzfs/module/os/linux/zfs/zio_crypt.c        |    2 +-
 sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c |   17 +-
 .../openzfs/module/os/linux/zfs/zpl_super.c        |   22 +-
 sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c  |    3 +-
 .../openzfs/module/zcommon/zfeature_common.c       |    6 +
 sys/contrib/openzfs/module/zcommon/zfs_comutil.c   |    4 +-
 sys/contrib/openzfs/module/zcommon/zfs_deleg.c     |    4 +-
 sys/contrib/openzfs/module/zcommon/zfs_fletcher.c  |   29 +-
 .../module/zcommon/zfs_fletcher_aarch64_neon.c     |    5 +-
 .../openzfs/module/zcommon/zfs_fletcher_avx512.c   |    6 +-
 .../openzfs/module/zcommon/zfs_fletcher_intel.c    |    5 +-
 .../openzfs/module/zcommon/zfs_fletcher_sse.c      |    6 +-
 .../module/zcommon/zfs_fletcher_superscalar.c      |    5 +-
 .../module/zcommon/zfs_fletcher_superscalar4.c     |    5 +-
 sys/contrib/openzfs/module/zcommon/zfs_prop.c      |    6 +-
 sys/contrib/openzfs/module/zcommon/zpool_prop.c    |    9 +
 sys/contrib/openzfs/module/zfs/arc.c               |  986 +--
 sys/contrib/openzfs/module/zfs/bpobj.c             |    1 +
 sys/contrib/openzfs/module/zfs/brt.c               | 1884 +++++
 sys/contrib/openzfs/module/zfs/dbuf.c              |  200 +-
 sys/contrib/openzfs/module/zfs/ddt.c               |   55 +
 sys/contrib/openzfs/module/zfs/dmu.c               |  204 +-
 sys/contrib/openzfs/module/zfs/dmu_object.c        |    2 +
 sys/contrib/openzfs/module/zfs/dmu_objset.c        |   38 +-
 sys/contrib/openzfs/module/zfs/dmu_recv.c          |   51 +-
 sys/contrib/openzfs/module/zfs/dmu_redact.c        |    6 +-
 sys/contrib/openzfs/module/zfs/dmu_send.c          |    2 +-
 sys/contrib/openzfs/module/zfs/dmu_traverse.c      |   24 +-
 sys/contrib/openzfs/module/zfs/dmu_tx.c            |   47 +-
 sys/contrib/openzfs/module/zfs/dmu_zfetch.c        |   29 +-
 sys/contrib/openzfs/module/zfs/dnode.c             |   26 +-
 sys/contrib/openzfs/module/zfs/dsl_bookmark.c      |   16 +-
 sys/contrib/openzfs/module/zfs/dsl_crypt.c         |   21 +-
 sys/contrib/openzfs/module/zfs/dsl_dataset.c       |   42 +-
 sys/contrib/openzfs/module/zfs/dsl_deadlist.c      |   28 +-
 sys/contrib/openzfs/module/zfs/dsl_destroy.c       |    2 +-
 sys/contrib/openzfs/module/zfs/dsl_dir.c           |    2 +
 sys/contrib/openzfs/module/zfs/dsl_pool.c          |    1 +
 sys/contrib/openzfs/module/zfs/dsl_prop.c          |    2 +-
 sys/contrib/openzfs/module/zfs/dsl_scan.c          |   17 +-
 sys/contrib/openzfs/module/zfs/dsl_userhold.c      |    4 +-
 sys/contrib/openzfs/module/zfs/edonr_zfs.c         |    8 +-
 sys/contrib/openzfs/module/zfs/fm.c                |    2 +-
 sys/contrib/openzfs/module/zfs/sa.c                |    3 +-
 .../openzfs/module/zfs/{sha256.c => sha2_zfs.c}    |   14 +-
 sys/contrib/openzfs/module/zfs/spa.c               |   82 +-
 sys/contrib/openzfs/module/zfs/spa_config.c        |    4 +-
 sys/contrib/openzfs/module/zfs/spa_errlog.c        |  340 +-
 sys/contrib/openzfs/module/zfs/spa_history.c       |    2 +-
 sys/contrib/openzfs/module/zfs/spa_misc.c          |    7 +-
 sys/contrib/openzfs/module/zfs/vdev.c              |   49 +-
 sys/contrib/openzfs/module/zfs/vdev_draid.c        |    6 +-
 sys/contrib/openzfs/module/zfs/vdev_label.c        |   37 +-
 sys/contrib/openzfs/module/zfs/vdev_raidz_math.c   |    2 +-
 sys/contrib/openzfs/module/zfs/vdev_removal.c      |    2 +-
 sys/contrib/openzfs/module/zfs/vdev_trim.c         |   72 +-
 sys/contrib/openzfs/module/zfs/zap_leaf.c          |    2 +-
 sys/contrib/openzfs/module/zfs/zcp.c               |    2 +-
 sys/contrib/openzfs/module/zfs/zcp_get.c           |    2 +-
 sys/contrib/openzfs/module/zfs/zcp_iter.c          |    2 +-
 sys/contrib/openzfs/module/zfs/zfs_chksum.c        |  124 +-
 sys/contrib/openzfs/module/zfs/zfs_fuid.c          |    2 +-
 sys/contrib/openzfs/module/zfs/zfs_impl.c          |   61 +
 sys/contrib/openzfs/module/zfs/zfs_ioctl.c         |   70 +-
 sys/contrib/openzfs/module/zfs/zfs_log.c           |   52 +
 sys/contrib/openzfs/module/zfs/zfs_quota.c         |    3 +-
 sys/contrib/openzfs/module/zfs/zfs_replay.c        |   30 +
 sys/contrib/openzfs/module/zfs/zfs_vnops.c         |  469 +-
 sys/contrib/openzfs/module/zfs/zil.c               |  191 +-
 sys/contrib/openzfs/module/zfs/zio.c               |   74 +-
 sys/contrib/openzfs/module/zfs/zio_checksum.c      |   11 +-
 sys/contrib/openzfs/module/zfs/zio_compress.c      |    7 +-
 sys/contrib/openzfs/module/zfs/zvol.c              |   55 +
 sys/contrib/openzfs/scripts/kmodtool               |   30 +-
 sys/contrib/openzfs/scripts/mancheck.sh            |    2 +-
 sys/contrib/openzfs/tests/runfiles/common.run      |   41 +-
 .../tests/zfs-tests/callbacks/zfs_dbgmsg.ksh       |    3 +
 .../tests/zfs-tests/callbacks/zfs_dmesg.ksh        |    3 +-
 .../openzfs/tests/zfs-tests/callbacks/zfs_mmp.ksh  |    1 +
 .../tests/zfs-tests/cmd/checksum/blake3_test.c     |   18 +-
 .../tests/zfs-tests/cmd/checksum/edonr_test.c      |   83 +-
 .../tests/zfs-tests/cmd/checksum/sha2_test.c       |   34 +-
 sys/contrib/openzfs/tests/zfs-tests/cmd/draid.c    |    2 +-
 sys/contrib/openzfs/tests/zfs-tests/cmd/ereports.c |    4 +-
 .../tests/zfs-tests/cmd/libzfs_input_check.c       |    2 +-
 .../openzfs/tests/zfs-tests/cmd/mmap_sync.c        |    2 +-
 .../openzfs/tests/zfs-tests/cmd/nvlist_to_lua.c    |    2 +-
 .../openzfs/tests/zfs-tests/cmd/renameat2.c        |    2 +-
 .../openzfs/tests/zfs-tests/tests/Makefile.am      |    6 +
 .../tests/functional/cli_root/zdb/zdb_args_neg.ksh |    2 +-
 .../functional/cli_root/zdb/zdb_encrypted.ksh      |   69 +
 .../zfs_receive/zfs_receive_corrective.ksh         |    2 +-
 .../zfs_receive_large_block_corrective.ksh         |  194 +
 .../functional/cli_root/zpool_get/zpool_get.cfg    |    4 +
 .../cli_root/zpool_status/zpool_status_003_pos.ksh |    2 +
 .../cli_root/zpool_status/zpool_status_005_pos.ksh |   20 +-
 .../cli_root/zpool_status/zpool_status_006_pos.ksh |   97 +
 .../cli_root/zpool_status/zpool_status_007_pos.ksh |   98 +
 .../functional/migration/migration_012_pos.ksh     |    4 +-
 .../zfs-tests/tests/functional/mmap/mmap_mixed.ksh |   86 +
 .../tests/functional/renameat2/cleanup.ksh         |    2 +-
 .../functional/renameat2/renameat2_exchange.ksh    |    2 +-
 .../functional/renameat2/renameat2_noreplace.ksh   |    2 +-
 .../functional/renameat2/renameat2_whiteout.ksh    |    2 +-
 .../zfs-tests/tests/functional/renameat2/setup.ksh |    2 +-
 .../tests/functional/rsend/rsend_031_pos.ksh       |   63 +
 .../tests/functional/snapshot/snapshot_018_pos.ksh |    2 +-
 .../openzfs/tests/zfs-tests/tests/perf/perf.shlib  |    1 -
 sys/modules/zfs/Makefile                           |  242 +-
 sys/modules/zfs/zfs_config.h                       |   10 +-
 sys/modules/zfs/zfs_gitrev.h                       |    2 +-
 usr.sbin/fstyp/zfs.c                               |    2 +-
 332 files changed, 47407 insertions(+), 17330 deletions(-)

diff --cc cddl/lib/libicp/Makefile
index d00a47f2529a,000000000000..db791854efae
mode 100644,000000..100644
--- a/cddl/lib/libicp/Makefile
+++ b/cddl/lib/libicp/Makefile
@@@ -1,121 -1,0 +1,143 @@@
 +# $FreeBSD$
 +
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp
 +
 +PACKAGE=	zfs
 +LIB=	icp
 +LIBADD=
 +
- 
 +.if ${MACHINE_ARCH} == "amd64"
 +ASM_SOURCES_C = asm-x86_64/aes/aeskey.c
 +ASM_SOURCES_AS = \
 +        asm-x86_64/aes/aes_amd64.S \
 +        asm-x86_64/aes/aes_aesni.S \
 +        asm-x86_64/modes/gcm_pclmulqdq.S \
 +        asm-x86_64/modes/aesni-gcm-x86_64.S \
 +        asm-x86_64/modes/ghash-x86_64.S \
-         asm-x86_64/sha2/sha256_impl.S \
-         asm-x86_64/sha2/sha512_impl.S \
++        asm-x86_64/sha2/sha256-x86_64.S \
++        asm-x86_64/sha2/sha512-x86_64.S \
 +        asm-x86_64/blake3/blake3_avx2.S \
 +        asm-x86_64/blake3/blake3_avx512.S \
 +        asm-x86_64/blake3/blake3_sse2.S \
 +        asm-x86_64/blake3/blake3_sse41.S
 +
 +CFLAGS+= -D__amd64 -D_SYS_STACK_H -UHAVE_AES
++.elif ${MACHINE_ARCH} == "armv7"
++ASM_SOURCES_C =
++ASM_SOURCES_AS = \
++        asm-arm/sha2/sha256-armv7.S \
++        asm-arm/sha2/sha512-armv7.S
 +.elif ${MACHINE_ARCH} == "aarch64"
 +ASM_SOURCES_C =
 +ASM_SOURCES_AS = \
 +        asm-aarch64/blake3/b3_aarch64_sse2.S \
-         asm-aarch64/blake3/b3_aarch64_sse41.S
++        asm-aarch64/blake3/b3_aarch64_sse41.S \
++        asm-aarch64/sha2/sha256-armv8.S \
++        asm-aarch64/sha2/sha512-armv8.S
++.elif ${MACHINE_ARCH} == "powerpc64"
++ASM_SOURCES_C =
++ASM_SOURCES_AS = \
++        asm-ppc64/sha2/sha256-ppc.S \
++        asm-ppc64/sha2/sha512-ppc.S \
++        asm-ppc64/sha2/sha256-p8.S \
++        asm-ppc64/sha2/sha512-p8.S
 +.elif ${MACHINE_ARCH} == "powerpc64le"
 +ASM_SOURCES_C =
 +ASM_SOURCES_AS = \
 +        asm-ppc64/blake3/b3_ppc64le_sse2.S \
-         asm-ppc64/blake3/b3_ppc64le_sse41.S
++        asm-ppc64/blake3/b3_ppc64le_sse41.S \
++        asm-ppc64/sha2/sha256-ppc.S \
++        asm-ppc64/sha2/sha512-ppc.S \
++        asm-ppc64/sha2/sha256-p8.S \
++        asm-ppc64/sha2/sha512-p8.S
 +.else
 +ASM_SOURCES_C =
 +ASM_SOURCES_AS =
 +.endif
 +
- 
 +KERNEL_C = \
 +        spi/kcf_spi.c \
 +        api/kcf_ctxops.c \
 +        api/kcf_cipher.c \
 +        api/kcf_mac.c \
 +        algs/aes/aes_impl_aesni.c \
 +        algs/aes/aes_impl_generic.c \
 +        algs/aes/aes_impl_x86-64.c \
 +        algs/aes/aes_impl.c \
 +        algs/aes/aes_modes.c \
 +        algs/blake3/blake3.c \
 +        algs/blake3/blake3_generic.c \
 +        algs/blake3/blake3_impl.c \
-         algs/blake3/blake3_x86-64.c \
 +        algs/edonr/edonr.c \
 +        algs/modes/modes.c \
 +        algs/modes/cbc.c \
 +        algs/modes/gcm_generic.c \
 +        algs/modes/gcm_pclmulqdq.c \
 +        algs/modes/gcm.c \
 +        algs/modes/ctr.c \
 +        algs/modes/ccm.c \
 +        algs/modes/ecb.c \
-         algs/sha2/sha2.c \
++        algs/sha2/sha2_generic.c \
++        algs/sha2/sha256_impl.c \
++        algs/sha2/sha512_impl.c \
 +        algs/skein/skein.c \
 +        algs/skein/skein_block.c \
 +        algs/skein/skein_iv.c \
 +        illumos-crypto.c \
 +        io/aes.c \
 +        io/sha2_mod.c \
 +        io/skein_mod.c \
 +        core/kcf_sched.c \
 +        core/kcf_prov_lib.c \
 +        core/kcf_callprov.c \
 +        core/kcf_mech_tabs.c \
 +        core/kcf_prov_tabs.c \
 +        $(ASM_SOURCES_C)
 +
- 
- 
- 
- 
++.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zfs
++KERNEL_C+=	zfs_impl.c
 +
 +SRCS= $(ASM_SOURCES_AS) $(KERNEL_C)
 +
 +WARNS?=	2
 +SHLIB_MAJOR= 3
 +CSTD=	c99
 +CFLAGS+= -DIN_BASE
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd
 +CFLAGS+= -I${SRCTOP}/sys
 +CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include
 +CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h
 +CFLAGS+= -DHAVE_ISSETUGID
 +CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
 +
- 
 +CFLAGS.aes_amd64.S+= -DLOCORE
 +CFLAGS.aes_aesni.S+= -DLOCORE
 +CFLAGS.gcm_pclmulqdq.S+= -DLOCORE
 +CFLAGS.aesni-gcm-x86_64.S+= -DLOCORE
 +CFLAGS.ghash-x86_64.S+= -DLOCORE
- CFLAGS.sha256_impl.S+= -DLOCORE
- CFLAGS.sha512_impl.S+= -DLOCORE
++CFLAGS.sha256-x86_64.S+= -DLOCORE
++CFLAGS.sha512-x86_64.S+= -DLOCORE
 +CFLAGS.blake3_avx2.S = -DLOCORE
 +CFLAGS.blake3_avx512.S = -DLOCORE
 +CFLAGS.blake3_sse2.S = -DLOCORE
 +CFLAGS.blake3_sse41.S = -DLOCORE
 +CFLAGS.b3_aarch64_sse2.S = -DLOCORE
 +CFLAGS.b3_aarch64_sse41.S = -DLOCORE
++CFLAGS.sha256-armv7.S = -DLOCORE
++CFLAGS.sha256-armv8.S = -DLOCORE
++CFLAGS.sha512-armv7.S = -DLOCORE
++CFLAGS.sha512-armv8.S = -DLOCORE
 +CFLAGS.b3_ppc64le_sse2.S = -DLOCORE
 +CFLAGS.b3_ppc64le_sse41.S = -DLOCORE
++CFLAGS.sha256-p8.S = -DLOCORE
++CFLAGS.sha256-ppc.S = -DLOCORE
++CFLAGS.sha512-p8.S = -DLOCORE
++CFLAGS.sha512-ppc.S = -DLOCORE
 +
 +
 +LDFLAGS.bfd+= -Wl,-znoexecstack
 +
 +.include <bsd.lib.mk>
diff --cc cddl/lib/libicp_rescue/Makefile
index 6c6c3998f85c,000000000000..7173f94238bb
mode 100644,000000..100644
--- a/cddl/lib/libicp_rescue/Makefile
+++ b/cddl/lib/libicp_rescue/Makefile
@@@ -1,114 -1,0 +1,140 @@@
 +# $FreeBSD$
 +
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp
 +
 +PACKAGE=	utilities
 +LIB=	icp_rescue
 +LIBADD=
 +
- 
 +.if ${MACHINE_ARCH} == "amd64"
 +ASM_SOURCES_C = asm-x86_64/aes/aeskey.c
 +ASM_SOURCES_AS = \
 +        asm-x86_64/aes/aes_amd64.S \
 +        asm-x86_64/aes/aes_aesni.S \
 +        asm-x86_64/modes/gcm_pclmulqdq.S \
 +        asm-x86_64/modes/aesni-gcm-x86_64.S \
-         asm-x86_64/sha2/sha256_impl.S \
-         asm-x86_64/sha2/sha512_impl.S \
++        asm-x86_64/sha2/sha256-x86_64.S \
++        asm-x86_64/sha2/sha512-x86_64.S \
 +        asm-x86_64/blake3/blake3_avx2.S \
 +        asm-x86_64/blake3/blake3_avx512.S \
 +        asm-x86_64/blake3/blake3_sse2.S \
 +        asm-x86_64/blake3/blake3_sse41.S
 +
 +CFLAGS+= -D__amd64 -D_SYS_STACK_H
++.elif ${MACHINE_ARCH} == "armv7"
++ASM_SOURCES_C =
++ASM_SOURCES_AS = \
++        asm-arm/sha2/sha256-armv7.S \
++        asm-arm/sha2/sha512-armv7.S
 +.elif ${MACHINE_ARCH} == "aarch64"
 +ASM_SOURCES_C =
 +ASM_SOURCES_AS = \
 +        asm-aarch64/blake3/b3_aarch64_sse2.S \
-         asm-aarch64/blake3/b3_aarch64_sse41.S
++        asm-aarch64/blake3/b3_aarch64_sse41.S \
++        asm-aarch64/sha2/sha256-armv8.S \
++        asm-aarch64/sha2/sha512-armv8.S
++.elif ${MACHINE_ARCH} == "powerpc64"
++ASM_SOURCES_C =
++ASM_SOURCES_AS = \
++        asm-ppc64/sha2/sha256-ppc.S \
++        asm-ppc64/sha2/sha512-ppc.S \
++        asm-ppc64/sha2/sha256-p8.S \
++        asm-ppc64/sha2/sha512-p8.S
 +.elif ${MACHINE_ARCH} == "powerpc64le"
 +ASM_SOURCES_C =
 +ASM_SOURCES_AS = \
 +        asm-ppc64/blake3/b3_ppc64le_sse2.S \
-         asm-ppc64/blake3/b3_ppc64le_sse41.S
++        asm-ppc64/blake3/b3_ppc64le_sse41.S \
++        asm-ppc64/sha2/sha256-ppc.S \
++        asm-ppc64/sha2/sha512-ppc.S \
++        asm-ppc64/sha2/sha256-p8.S \
++        asm-ppc64/sha2/sha512-p8.S
 +.else
 +ASM_SOURCES_C =
 +ASM_SOURCES_AS =
 +.endif
 +
- 
 +KERNEL_C = \
 +        spi/kcf_spi.c \
 +        api/kcf_ctxops.c \
 +        api/kcf_cipher.c \
 +        api/kcf_mac.c \
 +        algs/aes/aes_impl_aesni.c \
 +        algs/aes/aes_impl_generic.c \
 +        algs/aes/aes_impl_x86-64.c \
 +        algs/aes/aes_impl.c \
 +        algs/aes/aes_modes.c \
 +        algs/blake3/blake3.c \
 +        algs/blake3/blake3_generic.c \
 +        algs/blake3/blake3_impl.c \
-         algs/blake3/blake3_x86-64.c \
 +        algs/edonr/edonr.c \
 +        algs/modes/modes.c \
 +        algs/modes/cbc.c \
 +        algs/modes/gcm_generic.c \
 +        algs/modes/gcm_pclmulqdq.c \
 +        algs/modes/gcm.c \
 +        algs/modes/ctr.c \
 +        algs/modes/ccm.c \
 +        algs/modes/ecb.c \
-         algs/sha2/sha2.c \
++        algs/sha2/sha2_generic.c \
++        algs/sha2/sha256_impl.c \
++        algs/sha2/sha512_impl.c \
 +        algs/skein/skein_block.c \
 +        illumos-crypto.c \
 +        io/aes.c \
 +        io/sha2_mod.c \
 +        io/skein_mod.c \
 +        core/kcf_sched.c \
 +        core/kcf_prov_lib.c \
 +        core/kcf_callprov.c \
 +        core/kcf_mech_tabs.c \
 +        core/kcf_prov_tabs.c \
 +        $(ASM_SOURCES_C)
 +
++.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zfs
++KERNEL_C+=	zfs_impl.c
++
 +SRCS= $(ASM_SOURCES_AS) $(KERNEL_C)
 +
 +WARNS?=	2
 +SHLIB_MAJOR= 3
 +CSTD=	c99
 +CFLAGS+= -DIN_BASE
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd
 +CFLAGS+= -I${SRCTOP}/sys
 +CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include
 +CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h
 +CFLAGS+= -DHAVE_ISSETUGID -UHAVE_AVX -DRESCUE
 +CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
 +
- 
 +CFLAGS.aes_amd64.S+= -DLOCORE
 +CFLAGS.aes_aesni.S+= -DLOCORE
 +CFLAGS.gcm_pclmulqdq.S+= -DLOCORE
 +CFLAGS.aesni-gcm-x86_64.S+= -DLOCORE
 +CFLAGS.ghash-x86_64.S+= -DLOCORE
- CFLAGS.sha256_impl.S+= -DLOCORE
- CFLAGS.sha512_impl.S+= -DLOCORE
++CFLAGS.sha256-x86_64.S+= -DLOCORE
++CFLAGS.sha512-x86_64.S+= -DLOCORE
 +CFLAGS.gcm.c+= -UCAN_USE_GCM_ASM
 +CFLAGS.blake3_avx2.S = -DLOCORE
 +CFLAGS.blake3_avx512.S = -DLOCORE
 +CFLAGS.blake3_sse2.S = -DLOCORE
 +CFLAGS.blake3_sse41.S = -DLOCORE
 +CFLAGS.b3_aarch64_sse2.S = -DLOCORE
 +CFLAGS.b3_aarch64_sse41.S = -DLOCORE
++CFLAGS.sha256-armv7.S = -DLOCORE
++CFLAGS.sha512-armv7.S = -DLOCORE
++CFLAGS.sha256-armv8.S = -DLOCORE
++CFLAGS.sha512-armv8.S = -DLOCORE
 +CFLAGS.b3_ppc64le_sse2.S = -DLOCORE
 +CFLAGS.b3_ppc64le_sse41.S = -DLOCORE
- 
++CFLAGS.sha256-ppc.S = -DLOCORE
++CFLAGS.sha256-p8.S = -DLOCORE
++CFLAGS.sha512-ppc.S = -DLOCORE
++CFLAGS.sha512-p8.S = -DLOCORE
 +
 +LDFLAGS.bfd+= -Wl,-znoexecstack
 +
 +.include <bsd.lib.mk>
diff --cc cddl/lib/libzfs/Makefile
index 2551b9ebdd57,000000000000..c8e61202d687
mode 100644,000000..100644
--- a/cddl/lib/libzfs/Makefile
+++ b/cddl/lib/libzfs/Makefile
@@@ -1,108 -1,0 +1,107 @@@
 +# $FreeBSD$
 +
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/icp
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zcommon
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libzfs
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libzfs/os/freebsd
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libshare
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/include
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zstd
 +.PATH: ${SRCTOP}/sys/contrib/openzfs/module/zstd/lib
 +
 +PACKAGE=	zfs
 +LIB=	zfs
 +LIBADD= \
 +	avl \
 +	bsdxml \
 +	crypto \
 +	geom \
 +	m \
 +	md \
 +	nvpair \
 +	pthread \
 +	umem \
 +	util \
 +	uutil \
 +	z \
 +	zfs_core \
 +	zutil
 +
 +INCS=	libzfs.h
 +USER_C = \
 +        libzfs_changelist.c \
 +        libzfs_config.c \
 +        libzfs_crypto.c \
 +        libzfs_dataset.c \
 +        libzfs_diff.c \
 +        libzfs_import.c \
 +        libzfs_iter.c \
 +        libzfs_mount.c \
 +        libzfs_pool.c \
 +        libzfs_sendrecv.c \
 +        libzfs_status.c \
 +        libzfs_util.c
 +
 +# FreeBSD
 +USER_C += \
 +        libzfs_compat.c \
 +        libzfs_zmount.c
 +
 +# libshare
 +USER_C += \
 +	libshare.c \
 +	nfs.c \
 +	os/freebsd/nfs.c \
 +	os/freebsd/smb.c
 +
 +KERNEL_C = \
-         algs/sha2/sha2.c \
 +        cityhash.c \
 +        zfeature_common.c \
 +        zfs_comutil.c \
 +        zfs_deleg.c \
 +        zfs_fletcher.c \
 +        zfs_fletcher_superscalar.c \
 +        zfs_fletcher_superscalar4.c \
 +        zfs_namecheck.c \
 +        zfs_prop.c \
 +        zpool_prop.c \
 +        zprop_common.c
 +
 +
 +ARCH_C =
 +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
 +ARCH_C += 	zfs_fletcher_intel.c \
 +		zfs_fletcher_sse.c 
 +CFLAGS +=  -DHAVE_SSE2
 +.endif
 +.if ${MACHINE_ARCH} == "amd64"
 +ARCH_C +=	zfs_fletcher_avx512.c
 +CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F
 +.endif
 +.if ${MACHINE_CPUARCH} == "aarch64"
 +ARCH_C +=	zfs_fletcher_aarch64_neon.c
 +.endif
 +
 +SRCS= $(USER_C) $(KERNEL_C) $(ARCH_C)
 +
 +WARNS?=	2
 +SHLIB_MAJOR= 4
 +CSTD=	c99
 +CFLAGS+= -DIN_BASE
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include/os/freebsd
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libshare
 +CFLAGS+= -I${SRCTOP}/sys/contrib/ck/include
 +CFLAGS+= -I${SRCTOP}/sys
 +CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
 +CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include
 +CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h
 +CFLAGS+= -DHAVE_ISSETUGID
 +CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
 +CFLAGS+= -DSYSCONFDIR=\"/etc\"
 +CFLAGS+= -DPKGDATADIR=\"/usr/share/zfs\"
 +
 +
 +.include <bsd.lib.mk>
diff --cc cddl/lib/libzpool/Makefile
index aeb2b4175a3b,000000000000..5dbeb9cb1721
mode 100644,000000..100644
--- a/cddl/lib/libzpool/Makefile
+++ b/cddl/lib/libzpool/Makefile
@@@ -1,337 -1,0 +1,338 @@@
 +# $FreeBSD$
 +
 +ZFSTOP=	${SRCTOP}/sys/contrib/openzfs
 +
 +# ZFS_COMMON_SRCS
 +.PATH: ${ZFSTOP}/module/zfs
 +.PATH: ${ZFSTOP}/module/zcommon
 +.PATH: ${ZFSTOP}/module/unicode
 +# LUA_SRCS
 +.PATH: ${ZFSTOP}/module/lua
 +# ZSTD_SRCS
 +.PATH: ${ZFSTOP}/module/zstd
 +.PATH: ${ZFSTOP}/module/zstd/lib/common
 +.PATH: ${ZFSTOP}/module/zstd/lib/compress
 +.PATH: ${ZFSTOP}/module/zstd/lib/decompress
 +
 +.PATH: ${ZFSTOP}/module/os/linux/zfs
 +
 +.PATH: ${ZFSTOP}/lib/libzpool
 +
 +.if exists(${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}/opensolaris_atomic.S)
 +.PATH: ${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}
 +ATOMIC_SRCS=	opensolaris_atomic.S
 +ACFLAGS+=	-Wa,--noexecstack
 +.else
 +.PATH: ${SRCTOP}/sys/cddl/compat/opensolaris/kern
 +ATOMIC_SRCS=	opensolaris_atomic.c
 +.endif
 +
 +.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpcspe"
 +# Don't waste GOT entries on small data.
 +PICFLAG=	-fPIC
 +.endif
 +
 +PACKAGE=	zfs
 +LIB=		zpool
 +
 +USER_C = \
 +	kernel.c \
 +	taskq.c \
 +	util.c
 +
 +KERNEL_C = \
 +	zfeature_common.c \
 +	zfs_comutil.c \
 +	zfs_deleg.c \
 +	zfs_fletcher.c \
 +	zfs_fletcher_superscalar.c \
 +	zfs_fletcher_superscalar4.c \
 +	zfs_namecheck.c \
 +	zfs_prop.c \
 +	zfs_zstd.c \
 +	zpool_prop.c \
 +	zprop_common.c \
 +	abd.c \
 +	abd_os.c \
 +	aggsum.c \
 +	arc.c \
 +	arc_os.c \
 +        blake3_zfs.c \
 +	blkptr.c \
 +	bplist.c \
 +	bpobj.c \
 +	bptree.c \
- 	btree.c \
 +	bqueue.c \
++	btree.c \
++	brt.c \
 +	cityhash.c \
 +	dbuf.c \
 +	dbuf_stats.c \
 +	ddt.c \
 +	ddt_zap.c \
 +	dmu.c \
 +	dmu_diff.c \
 +	dmu_object.c \
 +	dmu_objset.c \
 +	dmu_recv.c \
 +	dmu_redact.c \
 +	dmu_send.c \
 +	dmu_traverse.c \
 +	dmu_tx.c \
 +	dmu_zfetch.c \
 +	dnode.c \
 +	dnode_sync.c \
 +	dsl_bookmark.c \
 +	dsl_dataset.c \
 +	dsl_deadlist.c \
 +	dsl_deleg.c \
 +	dsl_dir.c \
 +	dsl_crypt.c \
 +	dsl_pool.c \
 +	dsl_prop.c \
 +	dsl_scan.c \
 +	dsl_synctask.c \
 +	dsl_destroy.c \
 +	dsl_userhold.c \
 +	edonr_zfs.c \
 +	entropy_common.c \
 +	error_private.c \
 +	fm.c \
 +	fse_compress.c \
 +	fse_decompress.c \
 +	gzip.c \
 +	hist.c \
 +	hkdf.c \
 +	huf_compress.c \
 +	huf_decompress.c \
 +	lzjb.c \
 +	lz4.c \
 +	lz4_zfs.c \
 +	metaslab.c \
 +	mmp.c \
 +	multilist.c \
 +	objlist.c \
 +	pathname.c \
 +	pool.c \
 +	range_tree.c \
 +	refcount.c \
 +	rrwlock.c \
 +	sa.c \
- 	sha256.c \
++	sha2_zfs.c \
 +	skein_zfs.c \
 +	spa.c \
 +	spa_checkpoint.c \
 +	spa_config.c \
 +	spa_errlog.c \
 +	spa_history.c \
 +	spa_log_spacemap.c \
 +	spa_misc.c \
 +	spa_stats.c \
 +	space_map.c \
 +	space_reftree.c \
 +	txg.c \
 +	trace.c \
 +	uberblock.c \
 +	unique.c \
 +	vdev.c \
 +	vdev_cache.c \
 +	vdev_draid.c \
 +	vdev_draid_rand.c \
 +	vdev_file.c \
 +	vdev_indirect_births.c \
 +	vdev_indirect.c \
*** 14923 LINES SKIPPED ***