commit: 63394a17ae622bb0ed40c0d319cf55b02bc9c752
parent bdcd34d1f1beabbc7cf9063eee2121e11f9d1366
Author: Michael Forney <mforney@mforney.org>
Date: Fri, 22 Mar 2024 19:22:27 -0700
zfs: Update to 2.2.3
zstream decompress and recompress are patched out for now.
Diffstat:
25 files changed, 1304 insertions(+), 1254 deletions(-)
diff --git a/pkg/zfs/.gitignore b/pkg/zfs/.gitignore
@@ -1,2 +1,2 @@
/src
-/zfs-2.1.7.tar.gz
+/zfs-2.2.3.tar.gz
diff --git a/pkg/zfs/config.h b/pkg/zfs/config.h
@@ -12,6 +12,7 @@
/* #undef HAVE_ACL_REFCOUNT */
/* #undef HAVE_ADD_DISK_RET */
/* #undef HAVE_AES */
+#define HAVE_AIO_H 1
/* #undef HAVE_AVX */
/* #undef HAVE_AVX2 */
/* #undef HAVE_AVX512BW */
@@ -25,9 +26,13 @@
/* #undef HAVE_AVX512VL */
/* #undef HAVE_BDEVNAME */
/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */
-/* #undef HAVE_BDEV_IO_ACCT */
+/* #undef HAVE_BDEV_IO_ACCT_63 */
+/* #undef HAVE_BDEV_IO_ACCT_OLD */
+/* #undef HAVE_BDEV_KOBJ */
/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */
/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */
+/* #undef HAVE_BDEV_OPEN_BY_PATH */
+/* #undef HAVE_BDEV_RELEASE */
/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */
/* #undef HAVE_BDEV_WHOLE */
/* #undef HAVE_BIO_ALLOC_4ARG */
@@ -41,9 +46,12 @@
/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */
/* #undef HAVE_BIO_SET_DEV_MACRO */
/* #undef HAVE_BIO_SET_OP_ATTRS */
+/* #undef HAVE_BLKDEV_GET_BY_PATH_4ARG */
/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */
/* #undef HAVE_BLKDEV_ISSUE_DISCARD */
+/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC */
/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */
+/* #undef HAVE_BLKDEV_PUT_HOLDER */
/* #undef HAVE_BLKDEV_REREAD_PART */
/* #undef HAVE_BLKG_TRYGET */
/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */
@@ -51,6 +59,8 @@
/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */
/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */
/* #undef HAVE_BLK_CLEANUP_DISK */
+/* #undef HAVE_BLK_MODE_T */
+/* #undef HAVE_BLK_MQ */
/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */
/* #undef HAVE_BLK_QUEUE_DISCARD */
/* #undef HAVE_BLK_QUEUE_FLAG_CLEAR */
@@ -62,6 +72,8 @@
/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */
/* #undef HAVE_BLK_QUEUE_WRITE_CACHE */
/* #undef HAVE_BLK_QUEUE_WRITE_CACHE_GPL_ONLY */
+/* #undef HAVE_BLK_STS_RESV_CONFLICT */
+/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_1ARG */
/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */
/* #undef HAVE_CFLOCALECOPYCURRENT */
/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */
@@ -70,7 +82,9 @@
/* #undef HAVE_CLEAR_INODE */
/* #undef HAVE_CONST_DENTRY_OPERATIONS */
/* #undef HAVE_COPY_FROM_ITER */
+/* #undef HAVE_COPY_SPLICE_READ */
/* #undef HAVE_COPY_TO_ITER */
+/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */
/* #undef HAVE_CPU_HOTPLUG */
/* #undef HAVE_CURRENT_TIME */
/* #undef HAVE_DCGETTEXT */
@@ -79,6 +93,7 @@
/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */
/* #undef HAVE_DEVT_LOOKUP_BDEV */
/* #undef HAVE_DIRTY_INODE_WITH_FLAGS */
+/* #undef HAVE_DISK_CHECK_MEDIA_CHANGE */
/* #undef HAVE_DISK_IO_ACCT */
/* #undef HAVE_DISK_UPDATE_READAHEAD */
#define HAVE_DLFCN_H 1
@@ -89,13 +104,21 @@
/* #undef HAVE_EVICT_INODE */
/* #undef HAVE_FALLOC_FL_ZERO_RANGE */
/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */
+/* #undef HAVE_FILEMAP_RANGE_HAS_PAGE */
/* #undef HAVE_FILE_AIO_FSYNC */
/* #undef HAVE_FILE_DENTRY */
+/* #undef HAVE_FILE_FADVISE */
/* #undef HAVE_FILE_INODE */
+/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */
/* #undef HAVE_FOLLOW_LINK_COOKIE */
/* #undef HAVE_FOLLOW_LINK_NAMEIDATA */
+#define HAVE_FORMAT_OVERFLOW 1
+/* #undef HAVE_FSYNC_BDEV */
/* #undef HAVE_FSYNC_RANGE */
/* #undef HAVE_FSYNC_WITHOUT_DENTRY */
+/* #undef HAVE_GENERIC_FADVISE */
+/* #undef HAVE_GENERIC_FILLATTR_IDMAP */
+/* #undef HAVE_GENERIC_FILLATTR_IDMAP_REQMASK */
/* #undef HAVE_GENERIC_FILLATTR_USERNS */
/* #undef HAVE_GENERIC_IO_ACCT_3ARG */
/* #undef HAVE_GENERIC_IO_ACCT_4ARG */
@@ -105,26 +128,47 @@
/* #undef HAVE_GETTEXT */
/* #undef HAVE_GET_ACL */
/* #undef HAVE_GET_ACL_RCU */
+/* #undef HAVE_GET_INODE_ACL */
/* #undef HAVE_GET_LINK_COOKIE */
/* #undef HAVE_GET_LINK_DELAYED */
/* #undef HAVE_GROUP_INFO_GID */
/* #undef HAVE_HAS_CAPABILITY */
+/* #undef HAVE_IATTR_VFSID */
/* #undef HAVE_ICONV */
+/* #undef HAVE_IDMAP_IOPS_GETATTR */
+/* #undef HAVE_IDMAP_IOPS_SETATTR */
+/* #undef HAVE_IDMAP_MNT_API */
+/* #undef HAVE_IDMAP_NO_USERNS */
#define HAVE_IMPLICIT_FALLTHROUGH 1
#define HAVE_INFINITE_RECURSION 1
+/* #undef HAVE_INODE_GET_ATIME */
+/* #undef HAVE_INODE_GET_CTIME */
+/* #undef HAVE_INODE_GET_MTIME */
/* #undef HAVE_INODE_LOCK_SHARED */
/* #undef HAVE_INODE_OWNER_OR_CAPABLE */
-/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAPPED */
+/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */
+/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */
+/* #undef HAVE_INODE_SET_ATIME_TO_TS */
+/* #undef HAVE_INODE_SET_CTIME_TO_TS */
/* #undef HAVE_INODE_SET_FLAGS */
/* #undef HAVE_INODE_SET_IVERSION */
+/* #undef HAVE_INODE_SET_MTIME_TO_TS */
/* #undef HAVE_INODE_TIMESPEC64_TIMES */
/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */
#define HAVE_INTTYPES_H 1
/* #undef HAVE_IN_COMPAT_SYSCALL */
+/* #undef HAVE_IOPS_CREATE_IDMAP */
/* #undef HAVE_IOPS_CREATE_USERNS */
+/* #undef HAVE_IOPS_MKDIR_IDMAP */
/* #undef HAVE_IOPS_MKDIR_USERNS */
+/* #undef HAVE_IOPS_MKNOD_IDMAP */
/* #undef HAVE_IOPS_MKNOD_USERNS */
+/* #undef HAVE_IOPS_PERMISSION_IDMAP */
+/* #undef HAVE_IOPS_PERMISSION_USERNS */
+/* #undef HAVE_IOPS_RENAME_IDMAP */
/* #undef HAVE_IOPS_RENAME_USERNS */
+/* #undef HAVE_IOPS_SETATTR */
+/* #undef HAVE_IOPS_SYMLINK_IDMAP */
/* #undef HAVE_IOPS_SYMLINK_USERNS */
/* #undef HAVE_IOV_ITER_ADVANCE */
/* #undef HAVE_IOV_ITER_COUNT */
@@ -134,16 +178,19 @@
/* #undef HAVE_IOV_ITER_TYPES */
/* #undef HAVE_IO_SCHEDULE_TIMEOUT */
#define HAVE_ISSETUGID 1
+/* #undef HAVE_ITER_IOV */
/* #undef HAVE_KERNEL_FPU */
/* #undef HAVE_KERNEL_FPU_API_HEADER */
/* #undef HAVE_KERNEL_FPU_INTERNAL */
/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */
-/* #undef HAVE_KERNEL_FPU_XCR_HEADER */
-/* #undef HAVE_KERNEL_FPU_XSAVE_INTERNAL */
/* #undef HAVE_KERNEL_GET_ACL_HANDLE_CACHE */
+#define HAVE_KERNEL_INFINITE_RECURSION 1
+/* #undef HAVE_KERNEL_NEON */
/* #undef HAVE_KERNEL_OBJTOOL */
/* #undef HAVE_KERNEL_OBJTOOL_HEADER */
/* #undef HAVE_KERNEL_READ_PPOS */
+/* #undef HAVE_KERNEL_STRLCPY */
+/* #undef HAVE_KERNEL_STRSCPY */
/* #undef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST */
/* #undef HAVE_KERNEL_TIMER_LIST_FLAGS */
/* #undef HAVE_KERNEL_TIMER_SETUP */
@@ -171,6 +218,7 @@
#define HAVE_MOVBE 1
/* #undef HAVE_NEW_SYNC_READ */
/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */
+/* #undef HAVE_PART_TO_DEV */
/* #undef HAVE_PATH_IOPS_GETATTR */
#define HAVE_PCLMULQDQ 1
/* #undef HAVE_PERCPU_COUNTER_ADD_BATCH */
@@ -186,7 +234,11 @@
/* #undef HAVE_PUT_LINK_NAMEIDATA */
/* #undef HAVE_PYTHON */
/* #undef HAVE_QAT */
+/* #undef HAVE_RECLAIM_STATE_RECLAIMED */
/* #undef HAVE_REGISTER_SHRINKER_VARARG */
+/* #undef HAVE_REGISTER_SYSCTL_TABLE */
+/* #undef HAVE_RENAME2 */
+/* #undef HAVE_RENAME2_OPERATIONS_WRAPPER */
/* #undef HAVE_RENAME_WANTS_FLAGS */
/* #undef HAVE_REQ_DISCARD */
/* #undef HAVE_REQ_FLUSH */
@@ -200,12 +252,16 @@
/* #undef HAVE_RWSEM_ATOMIC_LONG_COUNT */
/* #undef HAVE_SCHED_SIGNAL_HEADER */
/* #undef HAVE_SECURITY_PAM_MODULES_H */
+/* #undef HAVE_SETATTR_PREPARE_IDMAP */
/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */
/* #undef HAVE_SETATTR_PREPARE_USERNS */
/* #undef HAVE_SET_ACL */
+/* #undef HAVE_SET_ACL_IDMAP_DENTRY */
/* #undef HAVE_SET_ACL_USERNS */
+/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */
/* #undef HAVE_SET_CACHED_ACL_USABLE */
/* #undef HAVE_SET_SPECIAL_STATE */
+/* #undef HAVE_SHRINKER_REGISTER */
/* #undef HAVE_SHRINK_CONTROL_STRUCT */
/* #undef HAVE_SIGINFO */
/* #undef HAVE_SIGNAL_STOP */
@@ -227,12 +283,17 @@
#define HAVE_STRLCAT 1
#define HAVE_STRLCPY 1
/* #undef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */
+/* #undef HAVE_SUPER_BLOCK_S_SHRINK */
+/* #undef HAVE_SUPER_BLOCK_S_SHRINK_PTR */
/* #undef HAVE_SUPER_SETUP_BDI_NAME */
/* #undef HAVE_SUPER_USER_NS */
+/* #undef HAVE_SYNC_BLOCKDEV */
/* #undef HAVE_SYSFS_DEFAULT_GROUPS */
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TYPES_H 1
/* #undef HAVE_TMPFILE */
+/* #undef HAVE_TMPFILE_DENTRY */
+/* #undef HAVE_TMPFILE_IDMAP */
/* #undef HAVE_TMPFILE_USERNS */
/* #undef HAVE_TOTALHIGH_PAGES */
/* #undef HAVE_TOTALRAM_PAGES_FUNC */
@@ -240,24 +301,33 @@
/* #undef HAVE_UNDERSCORE_KERNEL_FPU */
#define HAVE_UNISTD_H 1
/* #undef HAVE_USERNS_IOPS_GETATTR */
+/* #undef HAVE_USERNS_IOPS_SETATTR */
+/* #undef HAVE_USER_NS_COMMON_INUM */
/* #undef HAVE_VFSMOUNT_IOPS_GETATTR */
+/* #undef HAVE_VFS_CLONE_FILE_RANGE */
+/* #undef HAVE_VFS_COPY_FILE_RANGE */
+/* #undef HAVE_VFS_DEDUPE_FILE_RANGE */
/* #undef HAVE_VFS_DIRECT_IO_IOVEC */
/* #undef HAVE_VFS_DIRECT_IO_ITER */
/* #undef HAVE_VFS_DIRECT_IO_ITER_OFFSET */
/* #undef HAVE_VFS_DIRECT_IO_ITER_RW_OFFSET */
/* #undef HAVE_VFS_FILEMAP_DIRTY_FOLIO */
+/* #undef HAVE_VFS_FILE_OPERATIONS_EXTEND */
+/* #undef HAVE_VFS_GENERIC_COPY_FILE_RANGE */
/* #undef HAVE_VFS_IOV_ITER */
/* #undef HAVE_VFS_ITERATE */
/* #undef HAVE_VFS_ITERATE_SHARED */
/* #undef HAVE_VFS_READDIR */
/* #undef HAVE_VFS_READPAGES */
/* #undef HAVE_VFS_READ_FOLIO */
+/* #undef HAVE_VFS_REMAP_FILE_RANGE */
/* #undef HAVE_VFS_RW_ITERATE */
/* #undef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS */
/* #undef HAVE_VMALLOC_PAGE_KERNEL */
/* #undef HAVE_WAIT_ON_BIT_ACTION */
/* #undef HAVE_WAIT_QUEUE_ENTRY_T */
/* #undef HAVE_WAIT_QUEUE_HEAD_ENTRY */
+/* #undef HAVE_WRITEPAGE_T_FOLIO */
/* #undef HAVE_XATTR_GET_DENTRY */
/* #undef HAVE_XATTR_GET_DENTRY_INODE */
/* #undef HAVE_XATTR_GET_DENTRY_INODE_FLAGS */
@@ -269,6 +339,7 @@
/* #undef HAVE_XATTR_SET_DENTRY */
/* #undef HAVE_XATTR_SET_DENTRY_INODE */
/* #undef HAVE_XATTR_SET_HANDLER */
+/* #undef HAVE_XATTR_SET_IDMAP */
/* #undef HAVE_XATTR_SET_USERNS */
#define HAVE_XSAVE 1
#define HAVE_XSAVEOPT 1
@@ -277,20 +348,29 @@
#define HAVE_ZLIB 1
/* #undef HAVE___POSIX_ACL_CHMOD */
/* #undef KERNEL_EXPORTS_X86_FPU */
-/* #undef LIBFETCH_DYNAMIC */
-/* #undef LIBFETCH_IS_FETCH */
-/* #undef LIBFETCH_IS_LIBCURL */
-/* #undef LIBFETCH_SONAME */
+#define LIBFETCH_DYNAMIC 0
+#define LIBFETCH_IS_FETCH 0
+#define LIBFETCH_IS_LIBCURL 0
+#define LIBFETCH_SONAME ""
#define LT_OBJDIR ".libs/"
/* #undef MAKE_REQUEST_FN_RET */
+#define PACKAGE "zfs"
+#define PACKAGE_BUGREPORT ""
+#define PACKAGE_NAME "zfs"
+#define PACKAGE_STRING "zfs 2.2.3"
+#define PACKAGE_TARNAME "zfs"
+#define PACKAGE_URL ""
+#define PACKAGE_VERSION "2.2.3"
/* #undef SHRINK_CONTROL_HAS_NID */
/* #undef SPL_KTHREAD_COMPLETE_AND_EXIT */
#define SPL_META_ALIAS ZFS_META_ALIAS
#define SPL_META_RELEASE ZFS_META_RELEASE
#define SPL_META_VERSION ZFS_META_VERSION
/* #undef SPL_PDE_DATA */
+#define STDC_HEADERS 1
/* #undef SYSTEM_FREEBSD */
#define SYSTEM_LINUX 1
+#define VERSION "2.2.3"
/* #undef ZFS_DEBUG */
/* #undef ZFS_DEVICE_MINOR */
/* #undef ZFS_ENUM_NODE_STAT_ITEM_NR_FILE_PAGES */
@@ -304,10 +384,10 @@
/* #undef ZFS_GLOBAL_NODE_PAGE_STATE */
/* #undef ZFS_GLOBAL_ZONE_PAGE_STATE */
/* #undef ZFS_IS_GPL_COMPATIBLE */
-#define ZFS_META_ALIAS "zfs-2.1.7-1"
+#define ZFS_META_ALIAS "zfs-2.2.3-1"
#define ZFS_META_AUTHOR "OpenZFS"
/* #undef ZFS_META_DATA */
-#define ZFS_META_KVER_MAX "6.0"
+#define ZFS_META_KVER_MAX "6.7"
#define ZFS_META_KVER_MIN "3.10"
#define ZFS_META_LICENSE "CDDL"
/* #undef ZFS_META_LT_AGE */
@@ -315,9 +395,10 @@
/* #undef ZFS_META_LT_REVISION */
#define ZFS_META_NAME "zfs"
#define ZFS_META_RELEASE "1"
-#define ZFS_META_VERSION "2.1.7"
+#define ZFS_META_VERSION "2.2.3"
/* #undef ZFS_PERCPU_REF_COUNT_IN_DATA */
+#define ZFSEXECDIR "/libexec/zfs"
#define RUNSTATEDIR "/run"
#define SBINDIR "/bin"
#define SYSCONFDIR "/etc"
diff --git a/pkg/zfs/gen.lua b/pkg/zfs/gen.lua
@@ -30,6 +30,7 @@ lib('libavl.a', {'module/avl/avl.c'})
lib('libshare.a', [[
lib/libshare/(
libshare.c
+ nfs.c
os/linux/(nfs.c smb.c)
)
]])
@@ -38,6 +39,7 @@ lib('libspl.a', [[
lib/libspl/(
assert.c
atomic.c
+ getexecname.c
list.c
mkdirp.c
page.c
@@ -81,9 +83,9 @@ lib('libzutil.a', [[
zutil_nicenum.c
zutil_pool.c
os/linux/(
+ zutil_setproctitle.c
zutil_device_path_os.c
zutil_import_os.c
- zutil_compat.c
)
)
libefi.a.d
@@ -96,12 +98,9 @@ lib('libuutil.a', [[
lib/libuutil/(
uu_alloc.c
uu_avl.c
- uu_dprintf.c
uu_ident.c
uu_list.c
uu_misc.c
- uu_open.c
- uu_pname.c
uu_string.c
)
libavl.a
@@ -111,6 +110,7 @@ lib('libuutil.a', [[
lib('libzfs_core.a', [[
lib/libzfs_core/(
libzfs_core.c
+ os/linux/libzfs_core_ioctl.c
)
libzutil.a.d
]])
@@ -132,7 +132,6 @@ lib('libzfs.a', [[
os/linux/(
libzfs_mount_os.c
libzfs_pool_os.c
- libzfs_sendrecv_os.c
libzfs_util_os.c
)
)
@@ -169,12 +168,12 @@ exe('zed', [[
zed_log.c
zed_strings.c
agents/(
+ fmd_api.c
+ fmd_serd.c
zfs_agents.c
zfs_diagnosis.c
zfs_mod.c
zfs_retire.c
- fmd_api.c
- fmd_serd.c
)
)
libzfs.a.d
diff --git a/pkg/zfs/patch/0001-Port-to-BearSSL.patch b/pkg/zfs/patch/0001-Port-to-BearSSL.patch
@@ -1,4 +1,4 @@
-From ec03405d2ba8eee8e95ec94e09888eaff82ad6ac Mon Sep 17 00:00:00 2001
+From d9bae3dfe72c3680b273e611d01a8adf7cdf7765 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Tue, 17 Jan 2023 12:01:13 -0800
Subject: [PATCH] Port to BearSSL
@@ -8,7 +8,7 @@ Subject: [PATCH] Port to BearSSL
1 file changed, 42 insertions(+), 10 deletions(-)
diff --git a/lib/libzfs/libzfs_crypto.c b/lib/libzfs/libzfs_crypto.c
-index f77becd6a..5eed592a4 100644
+index 8f2a50d55..867879090 100644
--- a/lib/libzfs/libzfs_crypto.c
+++ b/lib/libzfs/libzfs_crypto.c
@@ -25,7 +25,7 @@
@@ -20,7 +20,7 @@ index f77becd6a..5eed592a4 100644
#if LIBFETCH_DYNAMIC
#include <dlfcn.h>
#endif
-@@ -763,6 +763,44 @@ error:
+@@ -772,6 +772,44 @@ error:
return (ret);
}
@@ -64,8 +64,8 @@ index f77becd6a..5eed592a4 100644
+
static int
derive_key(libzfs_handle_t *hdl, zfs_keyformat_t format, uint64_t iters,
- uint8_t *key_material, size_t key_material_len, uint64_t salt,
-@@ -793,15 +831,9 @@ derive_key(libzfs_handle_t *hdl, zfs_keyformat_t format, uint64_t iters,
+ uint8_t *key_material, uint64_t salt,
+@@ -800,15 +838,9 @@ derive_key(libzfs_handle_t *hdl, zfs_keyformat_t format, uint64_t iters,
case ZFS_KEYFORMAT_PASSPHRASE:
salt = LE_64(salt);
diff --git a/pkg/zfs/patch/0002-Use-find-exec-rm-instead-of-non-portable-delete.patch b/pkg/zfs/patch/0002-Use-find-exec-rm-instead-of-non-portable-delete.patch
@@ -1,4 +1,4 @@
-From 8da3e065051442982e255786a45fd5eea01321a9 Mon Sep 17 00:00:00 2001
+From 4f2a58f0763898a49d2b5d76f92f321947188708 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Tue, 17 Jan 2023 12:56:34 -0800
Subject: [PATCH] Use find -exec rm instead of non-portable -delete
@@ -12,7 +12,7 @@ Subject: [PATCH] Use find -exec rm instead of non-portable -delete
5 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/config/ax_code_coverage.m4 b/config/ax_code_coverage.m4
-index 3e3c666f3..fbe46db1f 100644
+index cd2498358..83b3dbf30 100644
--- a/config/ax_code_coverage.m4
+++ b/config/ax_code_coverage.m4
@@ -153,7 +153,7 @@ distclean: code-coverage-clean
@@ -25,10 +25,10 @@ index 3e3c666f3..fbe46db1f 100644
], [
[CODE_COVERAGE_RULES_CHECK='
diff --git a/module/Makefile.in b/module/Makefile.in
-index b6338430e..d87fb729d 100644
+index 9b34b3dfa..63d18d270 100644
--- a/module/Makefile.in
+++ b/module/Makefile.in
-@@ -70,7 +70,7 @@ clean-Linux:
+@@ -71,7 +71,7 @@ clean-Linux:
@CONFIG_KERNEL_TRUE@ $(MAKE) -C @LINUX_OBJ@ M="$$PWD" @KERNEL_MAKE@ clean
$(RM) @LINUX_SYMBOLS@ Module.markers
@@ -37,17 +37,17 @@ index b6338430e..d87fb729d 100644
clean-FreeBSD:
+$(FMAKE) clean
-@@ -86,7 +86,7 @@ modules_install-Linux:
+@@ -91,7 +91,7 @@ modules_install-Linux: modules_uninstall-Linux-legacy
+ KERNELRELEASE=@LINUX_VERSION@
@# Remove extraneous build products when packaging
- kmoddir=$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
if [ -n "$(DESTDIR)" ]; then \
-- find $$kmoddir -name 'modules.*' -delete; \
-+ find $$kmoddir -name 'modules.*' -exec $(RM) -- {} +; \
+- find $(KMODDIR) -name 'modules.*' -delete; \
++ find $(KMODDIR) -name 'modules.*' -exec $(RM) -- {} + \
fi
@# Debian ships tiny fake System.map files that are
@# syntactically valid but just say
diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_diff/zfs_diff_timestamp.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_diff/zfs_diff_timestamp.ksh
-index 0d08cf629..7714d02cd 100755
+index 81ee87f8a..903d2856f 100755
--- a/tests/zfs-tests/tests/functional/cli_root/zfs_diff/zfs_diff_timestamp.ksh
+++ b/tests/zfs-tests/tests/functional/cli_root/zfs_diff/zfs_diff_timestamp.ksh
@@ -33,7 +33,7 @@ function cleanup
@@ -60,20 +60,20 @@ index 0d08cf629..7714d02cd 100755
}
diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send_007_pos.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send_007_pos.ksh
-index da0aebe6b..7d5242ee0 100755
+index 157603981..cf60d03c5 100755
--- a/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send_007_pos.ksh
+++ b/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send_007_pos.ksh
-@@ -61,7 +61,7 @@ test_pool ()
+@@ -61,7 +61,7 @@ function test_pool
object=$(ls -i $mntpnt | awk '{print $1}')
log_must zfs snapshot $POOL/fs@a
while true; do
- log_must find $mntpnt/ -type f -delete
+ log_must find $mntpnt/ -type f -exec rm -- {} +
- sync
+ sync_all_pools
log_must mkfiles "$mntpnt/" 4000
- sync
+ sync_all_pools
diff --git a/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_common.kshlib b/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_common.kshlib
-index b69d2ce02..54f3e459e 100644
+index 93355d0b3..88fc777e1 100644
--- a/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_common.kshlib
+++ b/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_common.kshlib
@@ -60,7 +60,7 @@ function udev_cleanup
diff --git a/pkg/zfs/patch/0003-Use-AC_PROG_FGREP-to-detect-fgrep.patch b/pkg/zfs/patch/0003-Use-AC_PROG_FGREP-to-detect-fgrep.patch
@@ -1,41 +0,0 @@
-From 4f4a44f8c83179ee98397faa773f2e4c1faa066b Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Tue, 17 Jan 2023 12:57:13 -0800
-Subject: [PATCH] Use AC_PROG_FGREP to detect fgrep
-
-fgrep is not standard, so use AC_PROG_FGREP to detect the appropriate
-command.
----
- config/kernel.m4 | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/config/kernel.m4 b/config/kernel.m4
-index 3a059b73a..3f535fdb3 100644
---- a/config/kernel.m4
-+++ b/config/kernel.m4
-@@ -324,6 +324,7 @@ dnl # and `/usr/src/linux-*` with the highest version number according
- dnl # to `sort -V` is assumed to be both source and build directory.
- dnl #
- AC_DEFUN([ZFS_AC_KERNEL], [
-+ AC_REQUIRE([AC_PROG_FGREP])
- AC_ARG_WITH([linux],
- AS_HELP_STRING([--with-linux=PATH],
- [Path to kernel source]),
-@@ -404,11 +405,11 @@ AC_DEFUN([ZFS_AC_KERNEL], [
- utsrelease1=$kernelbuild/include/linux/version.h
- utsrelease2=$kernelbuild/include/linux/utsrelease.h
- utsrelease3=$kernelbuild/include/generated/utsrelease.h
-- AS_IF([test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1], [
-+ AS_IF([test -r $utsrelease1 && $FGREP -q UTS_RELEASE $utsrelease1], [
- utsrelease=$utsrelease1
-- ], [test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2], [
-+ ], [test -r $utsrelease2 && $FGREP -q UTS_RELEASE $utsrelease2], [
- utsrelease=$utsrelease2
-- ], [test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3], [
-+ ], [test -r $utsrelease3 && $FGREP -q UTS_RELEASE $utsrelease3], [
- utsrelease=$utsrelease3
- ])
-
---
-2.37.3
-
diff --git a/pkg/zfs/patch/0003-Use-__asm__-instead-of-asm-to-compile-with-std-c99.patch b/pkg/zfs/patch/0003-Use-__asm__-instead-of-asm-to-compile-with-std-c99.patch
@@ -0,0 +1,221 @@
+From 2c79a37719c4f115ad718adae6856f903f5a1e7b Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Tue, 17 Jan 2023 13:07:11 -0800
+Subject: [PATCH] Use __asm__ instead of asm to compile with -std=c99
+
+---
+ module/zcommon/zfs_fletcher_intel.c | 44 +++++++--------
+ module/zcommon/zfs_fletcher_sse.c | 86 ++++++++++++++---------------
+ 2 files changed, 65 insertions(+), 65 deletions(-)
+
+diff --git a/module/zcommon/zfs_fletcher_intel.c b/module/zcommon/zfs_fletcher_intel.c
+index 34590a155..9213d083c 100644
+--- a/module/zcommon/zfs_fletcher_intel.c
++++ b/module/zcommon/zfs_fletcher_intel.c
+@@ -83,18 +83,18 @@ fletcher_4_avx2_fini(fletcher_4_ctx_t *ctx, zio_cksum_t *zcp)
+
+ #define FLETCHER_4_AVX2_RESTORE_CTX(ctx) \
+ { \
+- asm volatile("vmovdqu %0, %%ymm0" :: "m" ((ctx)->avx[0])); \
+- asm volatile("vmovdqu %0, %%ymm1" :: "m" ((ctx)->avx[1])); \
+- asm volatile("vmovdqu %0, %%ymm2" :: "m" ((ctx)->avx[2])); \
+- asm volatile("vmovdqu %0, %%ymm3" :: "m" ((ctx)->avx[3])); \
++ __asm__ volatile("vmovdqu %0, %%ymm0" :: "m" ((ctx)->avx[0])); \
++ __asm__ volatile("vmovdqu %0, %%ymm1" :: "m" ((ctx)->avx[1])); \
++ __asm__ volatile("vmovdqu %0, %%ymm2" :: "m" ((ctx)->avx[2])); \
++ __asm__ volatile("vmovdqu %0, %%ymm3" :: "m" ((ctx)->avx[3])); \
+ }
+
+ #define FLETCHER_4_AVX2_SAVE_CTX(ctx) \
+ { \
+- asm volatile("vmovdqu %%ymm0, %0" : "=m" ((ctx)->avx[0])); \
+- asm volatile("vmovdqu %%ymm1, %0" : "=m" ((ctx)->avx[1])); \
+- asm volatile("vmovdqu %%ymm2, %0" : "=m" ((ctx)->avx[2])); \
+- asm volatile("vmovdqu %%ymm3, %0" : "=m" ((ctx)->avx[3])); \
++ __asm__ volatile("vmovdqu %%ymm0, %0" : "=m" ((ctx)->avx[0])); \
++ __asm__ volatile("vmovdqu %%ymm1, %0" : "=m" ((ctx)->avx[1])); \
++ __asm__ volatile("vmovdqu %%ymm2, %0" : "=m" ((ctx)->avx[2])); \
++ __asm__ volatile("vmovdqu %%ymm3, %0" : "=m" ((ctx)->avx[3])); \
+ }
+
+
+@@ -107,15 +107,15 @@ fletcher_4_avx2_native(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
+ FLETCHER_4_AVX2_RESTORE_CTX(ctx);
+
+ do {
+- asm volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip));
+- asm volatile("vpaddq %ymm4, %ymm0, %ymm0");
+- asm volatile("vpaddq %ymm0, %ymm1, %ymm1");
+- asm volatile("vpaddq %ymm1, %ymm2, %ymm2");
+- asm volatile("vpaddq %ymm2, %ymm3, %ymm3");
++ __asm__ volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip));
++ __asm__ volatile("vpaddq %ymm4, %ymm0, %ymm0");
++ __asm__ volatile("vpaddq %ymm0, %ymm1, %ymm1");
++ __asm__ volatile("vpaddq %ymm1, %ymm2, %ymm2");
++ __asm__ volatile("vpaddq %ymm2, %ymm3, %ymm3");
+ } while ((ip += 2) < ipend);
+
+ FLETCHER_4_AVX2_SAVE_CTX(ctx);
+- asm volatile("vzeroupper");
++ __asm__ volatile("vzeroupper");
+ }
+
+ static void
+@@ -130,20 +130,20 @@ fletcher_4_avx2_byteswap(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
+
+ FLETCHER_4_AVX2_RESTORE_CTX(ctx);
+
+- asm volatile("vmovdqu %0, %%ymm5" :: "m" (mask));
++ __asm__ volatile("vmovdqu %0, %%ymm5" :: "m" (mask));
+
+ do {
+- asm volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip));
+- asm volatile("vpshufb %ymm5, %ymm4, %ymm4");
++ __asm__ volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip));
++ __asm__ volatile("vpshufb %ymm5, %ymm4, %ymm4");
+
+- asm volatile("vpaddq %ymm4, %ymm0, %ymm0");
+- asm volatile("vpaddq %ymm0, %ymm1, %ymm1");
+- asm volatile("vpaddq %ymm1, %ymm2, %ymm2");
+- asm volatile("vpaddq %ymm2, %ymm3, %ymm3");
++ __asm__ volatile("vpaddq %ymm4, %ymm0, %ymm0");
++ __asm__ volatile("vpaddq %ymm0, %ymm1, %ymm1");
++ __asm__ volatile("vpaddq %ymm1, %ymm2, %ymm2");
++ __asm__ volatile("vpaddq %ymm2, %ymm3, %ymm3");
+ } while ((ip += 2) < ipend);
+
+ FLETCHER_4_AVX2_SAVE_CTX(ctx);
+- asm volatile("vzeroupper");
++ __asm__ volatile("vzeroupper");
+ }
+
+ static boolean_t fletcher_4_avx2_valid(void)
+diff --git a/module/zcommon/zfs_fletcher_sse.c b/module/zcommon/zfs_fletcher_sse.c
+index 8ab9b9acb..b942de4a2 100644
+--- a/module/zcommon/zfs_fletcher_sse.c
++++ b/module/zcommon/zfs_fletcher_sse.c
+@@ -82,18 +82,18 @@ fletcher_4_sse2_fini(fletcher_4_ctx_t *ctx, zio_cksum_t *zcp)
+
+ #define FLETCHER_4_SSE_RESTORE_CTX(ctx) \
+ { \
+- asm volatile("movdqu %0, %%xmm0" :: "m" ((ctx)->sse[0])); \
+- asm volatile("movdqu %0, %%xmm1" :: "m" ((ctx)->sse[1])); \
+- asm volatile("movdqu %0, %%xmm2" :: "m" ((ctx)->sse[2])); \
+- asm volatile("movdqu %0, %%xmm3" :: "m" ((ctx)->sse[3])); \
++ __asm__ volatile("movdqu %0, %%xmm0" :: "m" ((ctx)->sse[0])); \
++ __asm__ volatile("movdqu %0, %%xmm1" :: "m" ((ctx)->sse[1])); \
++ __asm__ volatile("movdqu %0, %%xmm2" :: "m" ((ctx)->sse[2])); \
++ __asm__ volatile("movdqu %0, %%xmm3" :: "m" ((ctx)->sse[3])); \
+ }
+
+ #define FLETCHER_4_SSE_SAVE_CTX(ctx) \
+ { \
+- asm volatile("movdqu %%xmm0, %0" : "=m" ((ctx)->sse[0])); \
+- asm volatile("movdqu %%xmm1, %0" : "=m" ((ctx)->sse[1])); \
+- asm volatile("movdqu %%xmm2, %0" : "=m" ((ctx)->sse[2])); \
+- asm volatile("movdqu %%xmm3, %0" : "=m" ((ctx)->sse[3])); \
++ __asm__ volatile("movdqu %%xmm0, %0" : "=m" ((ctx)->sse[0])); \
++ __asm__ volatile("movdqu %%xmm1, %0" : "=m" ((ctx)->sse[1])); \
++ __asm__ volatile("movdqu %%xmm2, %0" : "=m" ((ctx)->sse[2])); \
++ __asm__ volatile("movdqu %%xmm3, %0" : "=m" ((ctx)->sse[3])); \
+ }
+
+ static void
+@@ -104,21 +104,21 @@ fletcher_4_sse2_native(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
+
+ FLETCHER_4_SSE_RESTORE_CTX(ctx);
+
+- asm volatile("pxor %xmm4, %xmm4");
++ __asm__ volatile("pxor %xmm4, %xmm4");
+
+ do {
+- asm volatile("movdqu %0, %%xmm5" :: "m"(*ip));
+- asm volatile("movdqa %xmm5, %xmm6");
+- asm volatile("punpckldq %xmm4, %xmm5");
+- asm volatile("punpckhdq %xmm4, %xmm6");
+- asm volatile("paddq %xmm5, %xmm0");
+- asm volatile("paddq %xmm0, %xmm1");
+- asm volatile("paddq %xmm1, %xmm2");
+- asm volatile("paddq %xmm2, %xmm3");
+- asm volatile("paddq %xmm6, %xmm0");
+- asm volatile("paddq %xmm0, %xmm1");
+- asm volatile("paddq %xmm1, %xmm2");
+- asm volatile("paddq %xmm2, %xmm3");
++ __asm__ volatile("movdqu %0, %%xmm5" :: "m"(*ip));
++ __asm__ volatile("movdqa %xmm5, %xmm6");
++ __asm__ volatile("punpckldq %xmm4, %xmm5");
++ __asm__ volatile("punpckhdq %xmm4, %xmm6");
++ __asm__ volatile("paddq %xmm5, %xmm0");
++ __asm__ volatile("paddq %xmm0, %xmm1");
++ __asm__ volatile("paddq %xmm1, %xmm2");
++ __asm__ volatile("paddq %xmm2, %xmm3");
++ __asm__ volatile("paddq %xmm6, %xmm0");
++ __asm__ volatile("paddq %xmm0, %xmm1");
++ __asm__ volatile("paddq %xmm1, %xmm2");
++ __asm__ volatile("paddq %xmm2, %xmm3");
+ } while ((ip += 2) < ipend);
+
+ FLETCHER_4_SSE_SAVE_CTX(ctx);
+@@ -135,13 +135,13 @@ fletcher_4_sse2_byteswap(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
+ do {
+ uint32_t scratch1 = BSWAP_32(ip[0]);
+ uint32_t scratch2 = BSWAP_32(ip[1]);
+- asm volatile("movd %0, %%xmm5" :: "r"(scratch1));
+- asm volatile("movd %0, %%xmm6" :: "r"(scratch2));
+- asm volatile("punpcklqdq %xmm6, %xmm5");
+- asm volatile("paddq %xmm5, %xmm0");
+- asm volatile("paddq %xmm0, %xmm1");
+- asm volatile("paddq %xmm1, %xmm2");
+- asm volatile("paddq %xmm2, %xmm3");
++ __asm__ volatile("movd %0, %%xmm5" :: "r"(scratch1));
++ __asm__ volatile("movd %0, %%xmm6" :: "r"(scratch2));
++ __asm__ volatile("punpcklqdq %xmm6, %xmm5");
++ __asm__ volatile("paddq %xmm5, %xmm0");
++ __asm__ volatile("paddq %xmm0, %xmm1");
++ __asm__ volatile("paddq %xmm1, %xmm2");
++ __asm__ volatile("paddq %xmm2, %xmm3");
+ } while ((ip += 2) < ipend);
+
+ FLETCHER_4_SSE_SAVE_CTX(ctx);
+@@ -179,23 +179,23 @@ fletcher_4_ssse3_byteswap(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
+
+ FLETCHER_4_SSE_RESTORE_CTX(ctx);
+
+- asm volatile("movdqu %0, %%xmm7"::"m" (mask));
+- asm volatile("pxor %xmm4, %xmm4");
++ __asm__ volatile("movdqu %0, %%xmm7"::"m" (mask));
++ __asm__ volatile("pxor %xmm4, %xmm4");
+
+ do {
+- asm volatile("movdqu %0, %%xmm5"::"m" (*ip));
+- asm volatile("pshufb %xmm7, %xmm5");
+- asm volatile("movdqa %xmm5, %xmm6");
+- asm volatile("punpckldq %xmm4, %xmm5");
+- asm volatile("punpckhdq %xmm4, %xmm6");
+- asm volatile("paddq %xmm5, %xmm0");
+- asm volatile("paddq %xmm0, %xmm1");
+- asm volatile("paddq %xmm1, %xmm2");
+- asm volatile("paddq %xmm2, %xmm3");
+- asm volatile("paddq %xmm6, %xmm0");
+- asm volatile("paddq %xmm0, %xmm1");
+- asm volatile("paddq %xmm1, %xmm2");
+- asm volatile("paddq %xmm2, %xmm3");
++ __asm__ volatile("movdqu %0, %%xmm5"::"m" (*ip));
++ __asm__ volatile("pshufb %xmm7, %xmm5");
++ __asm__ volatile("movdqa %xmm5, %xmm6");
++ __asm__ volatile("punpckldq %xmm4, %xmm5");
++ __asm__ volatile("punpckhdq %xmm4, %xmm6");
++ __asm__ volatile("paddq %xmm5, %xmm0");
++ __asm__ volatile("paddq %xmm0, %xmm1");
++ __asm__ volatile("paddq %xmm1, %xmm2");
++ __asm__ volatile("paddq %xmm2, %xmm3");
++ __asm__ volatile("paddq %xmm6, %xmm0");
++ __asm__ volatile("paddq %xmm0, %xmm1");
++ __asm__ volatile("paddq %xmm1, %xmm2");
++ __asm__ volatile("paddq %xmm2, %xmm3");
+ } while ((ip += 2) < ipend);
+
+ FLETCHER_4_SSE_SAVE_CTX(ctx);
+--
+2.37.3
+
diff --git a/pkg/zfs/patch/0004-Use-__asm__-instead-of-asm-to-compile-with-std-c99.patch b/pkg/zfs/patch/0004-Use-__asm__-instead-of-asm-to-compile-with-std-c99.patch
@@ -1,221 +0,0 @@
-From 6f50ce7e45a1d35ed170a22c7b465445cc5437fa Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Tue, 17 Jan 2023 13:07:11 -0800
-Subject: [PATCH] Use __asm__ instead of asm to compile with -std=c99
-
----
- module/zcommon/zfs_fletcher_intel.c | 44 +++++++--------
- module/zcommon/zfs_fletcher_sse.c | 86 ++++++++++++++---------------
- 2 files changed, 65 insertions(+), 65 deletions(-)
-
-diff --git a/module/zcommon/zfs_fletcher_intel.c b/module/zcommon/zfs_fletcher_intel.c
-index 5136a01ec..14eecb192 100644
---- a/module/zcommon/zfs_fletcher_intel.c
-+++ b/module/zcommon/zfs_fletcher_intel.c
-@@ -83,18 +83,18 @@ fletcher_4_avx2_fini(fletcher_4_ctx_t *ctx, zio_cksum_t *zcp)
-
- #define FLETCHER_4_AVX2_RESTORE_CTX(ctx) \
- { \
-- asm volatile("vmovdqu %0, %%ymm0" :: "m" ((ctx)->avx[0])); \
-- asm volatile("vmovdqu %0, %%ymm1" :: "m" ((ctx)->avx[1])); \
-- asm volatile("vmovdqu %0, %%ymm2" :: "m" ((ctx)->avx[2])); \
-- asm volatile("vmovdqu %0, %%ymm3" :: "m" ((ctx)->avx[3])); \
-+ __asm__ volatile("vmovdqu %0, %%ymm0" :: "m" ((ctx)->avx[0])); \
-+ __asm__ volatile("vmovdqu %0, %%ymm1" :: "m" ((ctx)->avx[1])); \
-+ __asm__ volatile("vmovdqu %0, %%ymm2" :: "m" ((ctx)->avx[2])); \
-+ __asm__ volatile("vmovdqu %0, %%ymm3" :: "m" ((ctx)->avx[3])); \
- }
-
- #define FLETCHER_4_AVX2_SAVE_CTX(ctx) \
- { \
-- asm volatile("vmovdqu %%ymm0, %0" : "=m" ((ctx)->avx[0])); \
-- asm volatile("vmovdqu %%ymm1, %0" : "=m" ((ctx)->avx[1])); \
-- asm volatile("vmovdqu %%ymm2, %0" : "=m" ((ctx)->avx[2])); \
-- asm volatile("vmovdqu %%ymm3, %0" : "=m" ((ctx)->avx[3])); \
-+ __asm__ volatile("vmovdqu %%ymm0, %0" : "=m" ((ctx)->avx[0])); \
-+ __asm__ volatile("vmovdqu %%ymm1, %0" : "=m" ((ctx)->avx[1])); \
-+ __asm__ volatile("vmovdqu %%ymm2, %0" : "=m" ((ctx)->avx[2])); \
-+ __asm__ volatile("vmovdqu %%ymm3, %0" : "=m" ((ctx)->avx[3])); \
- }
-
-
-@@ -109,15 +109,15 @@ fletcher_4_avx2_native(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
- FLETCHER_4_AVX2_RESTORE_CTX(ctx);
-
- for (; ip < ipend; ip += 2) {
-- asm volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip));
-- asm volatile("vpaddq %ymm4, %ymm0, %ymm0");
-- asm volatile("vpaddq %ymm0, %ymm1, %ymm1");
-- asm volatile("vpaddq %ymm1, %ymm2, %ymm2");
-- asm volatile("vpaddq %ymm2, %ymm3, %ymm3");
-+ __asm__ volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip));
-+ __asm__ volatile("vpaddq %ymm4, %ymm0, %ymm0");
-+ __asm__ volatile("vpaddq %ymm0, %ymm1, %ymm1");
-+ __asm__ volatile("vpaddq %ymm1, %ymm2, %ymm2");
-+ __asm__ volatile("vpaddq %ymm2, %ymm3, %ymm3");
- }
-
- FLETCHER_4_AVX2_SAVE_CTX(ctx);
-- asm volatile("vzeroupper");
-+ __asm__ volatile("vzeroupper");
-
- kfpu_end();
- }
-@@ -136,20 +136,20 @@ fletcher_4_avx2_byteswap(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
-
- FLETCHER_4_AVX2_RESTORE_CTX(ctx);
-
-- asm volatile("vmovdqu %0, %%ymm5" :: "m" (mask));
-+ __asm__ volatile("vmovdqu %0, %%ymm5" :: "m" (mask));
-
- for (; ip < ipend; ip += 2) {
-- asm volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip));
-- asm volatile("vpshufb %ymm5, %ymm4, %ymm4");
-+ __asm__ volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip));
-+ __asm__ volatile("vpshufb %ymm5, %ymm4, %ymm4");
-
-- asm volatile("vpaddq %ymm4, %ymm0, %ymm0");
-- asm volatile("vpaddq %ymm0, %ymm1, %ymm1");
-- asm volatile("vpaddq %ymm1, %ymm2, %ymm2");
-- asm volatile("vpaddq %ymm2, %ymm3, %ymm3");
-+ __asm__ volatile("vpaddq %ymm4, %ymm0, %ymm0");
-+ __asm__ volatile("vpaddq %ymm0, %ymm1, %ymm1");
-+ __asm__ volatile("vpaddq %ymm1, %ymm2, %ymm2");
-+ __asm__ volatile("vpaddq %ymm2, %ymm3, %ymm3");
- }
-
- FLETCHER_4_AVX2_SAVE_CTX(ctx);
-- asm volatile("vzeroupper");
-+ __asm__ volatile("vzeroupper");
-
- kfpu_end();
- }
-diff --git a/module/zcommon/zfs_fletcher_sse.c b/module/zcommon/zfs_fletcher_sse.c
-index 15ce9b07f..3aca5485d 100644
---- a/module/zcommon/zfs_fletcher_sse.c
-+++ b/module/zcommon/zfs_fletcher_sse.c
-@@ -82,18 +82,18 @@ fletcher_4_sse2_fini(fletcher_4_ctx_t *ctx, zio_cksum_t *zcp)
-
- #define FLETCHER_4_SSE_RESTORE_CTX(ctx) \
- { \
-- asm volatile("movdqu %0, %%xmm0" :: "m" ((ctx)->sse[0])); \
-- asm volatile("movdqu %0, %%xmm1" :: "m" ((ctx)->sse[1])); \
-- asm volatile("movdqu %0, %%xmm2" :: "m" ((ctx)->sse[2])); \
-- asm volatile("movdqu %0, %%xmm3" :: "m" ((ctx)->sse[3])); \
-+ __asm__ volatile("movdqu %0, %%xmm0" :: "m" ((ctx)->sse[0])); \
-+ __asm__ volatile("movdqu %0, %%xmm1" :: "m" ((ctx)->sse[1])); \
-+ __asm__ volatile("movdqu %0, %%xmm2" :: "m" ((ctx)->sse[2])); \
-+ __asm__ volatile("movdqu %0, %%xmm3" :: "m" ((ctx)->sse[3])); \
- }
-
- #define FLETCHER_4_SSE_SAVE_CTX(ctx) \
- { \
-- asm volatile("movdqu %%xmm0, %0" : "=m" ((ctx)->sse[0])); \
-- asm volatile("movdqu %%xmm1, %0" : "=m" ((ctx)->sse[1])); \
-- asm volatile("movdqu %%xmm2, %0" : "=m" ((ctx)->sse[2])); \
-- asm volatile("movdqu %%xmm3, %0" : "=m" ((ctx)->sse[3])); \
-+ __asm__ volatile("movdqu %%xmm0, %0" : "=m" ((ctx)->sse[0])); \
-+ __asm__ volatile("movdqu %%xmm1, %0" : "=m" ((ctx)->sse[1])); \
-+ __asm__ volatile("movdqu %%xmm2, %0" : "=m" ((ctx)->sse[2])); \
-+ __asm__ volatile("movdqu %%xmm3, %0" : "=m" ((ctx)->sse[3])); \
- }
-
- static void
-@@ -106,21 +106,21 @@ fletcher_4_sse2_native(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
-
- FLETCHER_4_SSE_RESTORE_CTX(ctx);
-
-- asm volatile("pxor %xmm4, %xmm4");
-+ __asm__ volatile("pxor %xmm4, %xmm4");
-
- for (; ip < ipend; ip += 2) {
-- asm volatile("movdqu %0, %%xmm5" :: "m"(*ip));
-- asm volatile("movdqa %xmm5, %xmm6");
-- asm volatile("punpckldq %xmm4, %xmm5");
-- asm volatile("punpckhdq %xmm4, %xmm6");
-- asm volatile("paddq %xmm5, %xmm0");
-- asm volatile("paddq %xmm0, %xmm1");
-- asm volatile("paddq %xmm1, %xmm2");
-- asm volatile("paddq %xmm2, %xmm3");
-- asm volatile("paddq %xmm6, %xmm0");
-- asm volatile("paddq %xmm0, %xmm1");
-- asm volatile("paddq %xmm1, %xmm2");
-- asm volatile("paddq %xmm2, %xmm3");
-+ __asm__ volatile("movdqu %0, %%xmm5" :: "m"(*ip));
-+ __asm__ volatile("movdqa %xmm5, %xmm6");
-+ __asm__ volatile("punpckldq %xmm4, %xmm5");
-+ __asm__ volatile("punpckhdq %xmm4, %xmm6");
-+ __asm__ volatile("paddq %xmm5, %xmm0");
-+ __asm__ volatile("paddq %xmm0, %xmm1");
-+ __asm__ volatile("paddq %xmm1, %xmm2");
-+ __asm__ volatile("paddq %xmm2, %xmm3");
-+ __asm__ volatile("paddq %xmm6, %xmm0");
-+ __asm__ volatile("paddq %xmm0, %xmm1");
-+ __asm__ volatile("paddq %xmm1, %xmm2");
-+ __asm__ volatile("paddq %xmm2, %xmm3");
- }
-
- FLETCHER_4_SSE_SAVE_CTX(ctx);
-@@ -141,13 +141,13 @@ fletcher_4_sse2_byteswap(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
- for (; ip < ipend; ip += 2) {
- uint32_t scratch1 = BSWAP_32(ip[0]);
- uint32_t scratch2 = BSWAP_32(ip[1]);
-- asm volatile("movd %0, %%xmm5" :: "r"(scratch1));
-- asm volatile("movd %0, %%xmm6" :: "r"(scratch2));
-- asm volatile("punpcklqdq %xmm6, %xmm5");
-- asm volatile("paddq %xmm5, %xmm0");
-- asm volatile("paddq %xmm0, %xmm1");
-- asm volatile("paddq %xmm1, %xmm2");
-- asm volatile("paddq %xmm2, %xmm3");
-+ __asm__ volatile("movd %0, %%xmm5" :: "r"(scratch1));
-+ __asm__ volatile("movd %0, %%xmm6" :: "r"(scratch2));
-+ __asm__ volatile("punpcklqdq %xmm6, %xmm5");
-+ __asm__ volatile("paddq %xmm5, %xmm0");
-+ __asm__ volatile("paddq %xmm0, %xmm1");
-+ __asm__ volatile("paddq %xmm1, %xmm2");
-+ __asm__ volatile("paddq %xmm2, %xmm3");
- }
-
- FLETCHER_4_SSE_SAVE_CTX(ctx);
-@@ -188,23 +188,23 @@ fletcher_4_ssse3_byteswap(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size)
-
- FLETCHER_4_SSE_RESTORE_CTX(ctx);
-
-- asm volatile("movdqu %0, %%xmm7"::"m" (mask));
-- asm volatile("pxor %xmm4, %xmm4");
-+ __asm__ volatile("movdqu %0, %%xmm7"::"m" (mask));
-+ __asm__ volatile("pxor %xmm4, %xmm4");
-
- for (; ip < ipend; ip += 2) {
-- asm volatile("movdqu %0, %%xmm5"::"m" (*ip));
-- asm volatile("pshufb %xmm7, %xmm5");
-- asm volatile("movdqa %xmm5, %xmm6");
-- asm volatile("punpckldq %xmm4, %xmm5");
-- asm volatile("punpckhdq %xmm4, %xmm6");
-- asm volatile("paddq %xmm5, %xmm0");
-- asm volatile("paddq %xmm0, %xmm1");
-- asm volatile("paddq %xmm1, %xmm2");
-- asm volatile("paddq %xmm2, %xmm3");
-- asm volatile("paddq %xmm6, %xmm0");
-- asm volatile("paddq %xmm0, %xmm1");
-- asm volatile("paddq %xmm1, %xmm2");
-- asm volatile("paddq %xmm2, %xmm3");
-+ __asm__ volatile("movdqu %0, %%xmm5"::"m" (*ip));
-+ __asm__ volatile("pshufb %xmm7, %xmm5");
-+ __asm__ volatile("movdqa %xmm5, %xmm6");
-+ __asm__ volatile("punpckldq %xmm4, %xmm5");
-+ __asm__ volatile("punpckhdq %xmm4, %xmm6");
-+ __asm__ volatile("paddq %xmm5, %xmm0");
-+ __asm__ volatile("paddq %xmm0, %xmm1");
-+ __asm__ volatile("paddq %xmm1, %xmm2");
-+ __asm__ volatile("paddq %xmm2, %xmm3");
-+ __asm__ volatile("paddq %xmm6, %xmm0");
-+ __asm__ volatile("paddq %xmm0, %xmm1");
-+ __asm__ volatile("paddq %xmm1, %xmm2");
-+ __asm__ volatile("paddq %xmm2, %xmm3");
- }
-
- FLETCHER_4_SSE_SAVE_CTX(ctx);
---
-2.37.3
-
diff --git a/pkg/zfs/patch/0004-Use-__func__-instead-of-obsolete-and-non-standard-__.patch b/pkg/zfs/patch/0004-Use-__func__-instead-of-obsolete-and-non-standard-__.patch
@@ -0,0 +1,402 @@
+From 3b0d7aec7e04881005dcf07f12054cc65c2d3587 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 21 Jan 2023 17:12:32 -0800
+Subject: [PATCH] Use __func__ instead of obsolete and non-standard
+ __FUNCTION__
+
+---
+ include/os/freebsd/spl/sys/debug.h | 18 +++++++++---------
+ include/os/linux/spl/sys/debug.h | 18 +++++++++---------
+ lib/libspl/include/assert.h | 18 +++++++++---------
+ module/os/freebsd/zfs/crypto_os.c | 22 +++++++++++-----------
+ module/os/freebsd/zfs/zfs_vfsops.c | 4 ++--
+ module/os/freebsd/zfs/zio_crypt.c | 6 +++---
+ 6 files changed, 43 insertions(+), 43 deletions(-)
+
+diff --git a/include/os/freebsd/spl/sys/debug.h b/include/os/freebsd/spl/sys/debug.h
+index 3e67cf0e9..4bb62224e 100644
+--- a/include/os/freebsd/spl/sys/debug.h
++++ b/include/os/freebsd/spl/sys/debug.h
+@@ -75,18 +75,18 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ #define unlikely(expr) expect((expr) != 0, 0)
+
+ #define PANIC(fmt, a...) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, fmt, ## a)
++ spl_panic(__FILE__, __func__, __LINE__, fmt, ## a)
+
+ #define VERIFY(cond) \
+ (void) (unlikely(!(cond)) && \
+ spl_assert("VERIFY(" #cond ") failed\n", \
+- __FILE__, __FUNCTION__, __LINE__))
++ __FILE__, __func__, __LINE__))
+
+ #define VERIFY3B(LEFT, OP, RIGHT) do { \
+ const boolean_t _verify3_left = (boolean_t)(LEFT); \
+ const boolean_t _verify3_right = (boolean_t)(RIGHT); \
+ if (unlikely(!(_verify3_left OP _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
+ "failed (%d " #OP " %d)\n", \
+ (boolean_t)(_verify3_left), \
+@@ -97,7 +97,7 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ const int64_t _verify3_left = (int64_t)(LEFT); \
+ const int64_t _verify3_right = (int64_t)(RIGHT); \
+ if (unlikely(!(_verify3_left OP _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
+ "failed (%lld " #OP " %lld)\n", \
+ (long long) (_verify3_left), \
+@@ -108,7 +108,7 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ const uint64_t _verify3_left = (uint64_t)(LEFT); \
+ const uint64_t _verify3_right = (uint64_t)(RIGHT); \
+ if (unlikely(!(_verify3_left OP _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
+ "failed (%llu " #OP " %llu)\n", \
+ (unsigned long long) (_verify3_left), \
+@@ -119,7 +119,7 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ const uintptr_t _verify3_left = (uintptr_t)(LEFT); \
+ const uintptr_t _verify3_right = (uintptr_t)(RIGHT); \
+ if (unlikely(!(_verify3_left OP _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
+ "failed (%px " #OP " %px)\n", \
+ (void *) (_verify3_left), \
+@@ -130,7 +130,7 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ const int64_t _verify3_left = (int64_t)(0); \
+ const int64_t _verify3_right = (int64_t)(RIGHT); \
+ if (unlikely(!(_verify3_left == _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY0(0 == " #RIGHT ") " \
+ "failed (0 == %lld)\n", \
+ (long long) (_verify3_right)); \
+@@ -170,11 +170,11 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ #define IMPLY(A, B) \
+ ((void)(likely((!(A)) || (B)) || \
+ spl_assert("(" #A ") implies (" #B ")", \
+- __FILE__, __FUNCTION__, __LINE__)))
++ __FILE__, __func__, __LINE__)))
+ #define EQUIV(A, B) \
+ ((void)(likely(!!(A) == !!(B)) || \
+ spl_assert("(" #A ") is equivalent to (" #B ")", \
+- __FILE__, __FUNCTION__, __LINE__)))
++ __FILE__, __func__, __LINE__)))
+
+
+ #endif /* NDEBUG */
+diff --git a/include/os/linux/spl/sys/debug.h b/include/os/linux/spl/sys/debug.h
+index 007238574..ff5d65b0f 100644
+--- a/include/os/linux/spl/sys/debug.h
++++ b/include/os/linux/spl/sys/debug.h
+@@ -79,18 +79,18 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ }
+
+ #define PANIC(fmt, a...) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, fmt, ## a)
++ spl_panic(__FILE__, __func__, __LINE__, fmt, ## a)
+
+ #define VERIFY(cond) \
+ (void) (unlikely(!(cond)) && \
+ spl_assert("VERIFY(" #cond ") failed\n", \
+- __FILE__, __FUNCTION__, __LINE__))
++ __FILE__, __func__, __LINE__))
+
+ #define VERIFY3B(LEFT, OP, RIGHT) do { \
+ const boolean_t _verify3_left = (boolean_t)(LEFT); \
+ const boolean_t _verify3_right = (boolean_t)(RIGHT); \
+ if (unlikely(!(_verify3_left OP _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
+ "failed (%d " #OP " %d)\n", \
+ (boolean_t)(_verify3_left), \
+@@ -101,7 +101,7 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ const int64_t _verify3_left = (int64_t)(LEFT); \
+ const int64_t _verify3_right = (int64_t)(RIGHT); \
+ if (unlikely(!(_verify3_left OP _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
+ "failed (%lld " #OP " %lld)\n", \
+ (long long)(_verify3_left), \
+@@ -112,7 +112,7 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ const uint64_t _verify3_left = (uint64_t)(LEFT); \
+ const uint64_t _verify3_right = (uint64_t)(RIGHT); \
+ if (unlikely(!(_verify3_left OP _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
+ "failed (%llu " #OP " %llu)\n", \
+ (unsigned long long)(_verify3_left), \
+@@ -123,7 +123,7 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ const uintptr_t _verify3_left = (uintptr_t)(LEFT); \
+ const uintptr_t _verify3_right = (uintptr_t)(RIGHT); \
+ if (unlikely(!(_verify3_left OP _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
+ "failed (%px " #OP " %px)\n", \
+ (void *) (_verify3_left), \
+@@ -134,7 +134,7 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ const int64_t _verify3_left = (int64_t)(0); \
+ const int64_t _verify3_right = (int64_t)(RIGHT); \
+ if (unlikely(!(_verify3_left == _verify3_right))) \
+- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
++ spl_panic(__FILE__, __func__, __LINE__, \
+ "VERIFY0(0 == " #RIGHT ") " \
+ "failed (0 == %lld)\n", \
+ (long long) (_verify3_right)); \
+@@ -143,12 +143,12 @@ spl_assert(const char *buf, const char *file, const char *func, int line)
+ #define VERIFY_IMPLY(A, B) \
+ ((void)(likely((!(A)) || (B)) || \
+ spl_assert("(" #A ") implies (" #B ")", \
+- __FILE__, __FUNCTION__, __LINE__)))
++ __FILE__, __func__, __LINE__)))
+
+ #define VERIFY_EQUIV(A, B) \
+ ((void)(likely(!!(A) == !!(B)) || \
+ spl_assert("(" #A ") is equivalent to (" #B ")", \
+- __FILE__, __FUNCTION__, __LINE__)))
++ __FILE__, __func__, __LINE__)))
+
+ /*
+ * Debugging disabled (--disable-debug)
+diff --git a/lib/libspl/include/assert.h b/lib/libspl/include/assert.h
+index af4957dfb..c3a06c119 100644
+--- a/lib/libspl/include/assert.h
++++ b/lib/libspl/include/assert.h
+@@ -69,17 +69,17 @@ libspl_assert(const char *buf, const char *file, const char *func, int line)
+
+ #define VERIFY(cond) \
+ (void) ((!(cond)) && \
+- libspl_assert(#cond, __FILE__, __FUNCTION__, __LINE__))
++ libspl_assert(#cond, __FILE__, __func__, __LINE__))
+ #define verify(cond) \
+ (void) ((!(cond)) && \
+- libspl_assert(#cond, __FILE__, __FUNCTION__, __LINE__))
++ libspl_assert(#cond, __FILE__, __func__, __LINE__))
+
+ #define VERIFY3B(LEFT, OP, RIGHT) \
+ do { \
+ const boolean_t __left = (boolean_t)(LEFT); \
+ const boolean_t __right = (boolean_t)(RIGHT); \
+ if (!(__left OP __right)) \
+- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
++ libspl_assertf(__FILE__, __func__, __LINE__, \
+ "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
+ (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
+ } while (0)
+@@ -89,7 +89,7 @@ do { \
+ const int64_t __left = (int64_t)(LEFT); \
+ const int64_t __right = (int64_t)(RIGHT); \
+ if (!(__left OP __right)) \
+- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
++ libspl_assertf(__FILE__, __func__, __LINE__, \
+ "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
+ (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
+ } while (0)
+@@ -99,7 +99,7 @@ do { \
+ const uint64_t __left = (uint64_t)(LEFT); \
+ const uint64_t __right = (uint64_t)(RIGHT); \
+ if (!(__left OP __right)) \
+- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
++ libspl_assertf(__FILE__, __func__, __LINE__, \
+ "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
+ (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
+ } while (0)
+@@ -109,7 +109,7 @@ do { \
+ const uintptr_t __left = (uintptr_t)(LEFT); \
+ const uintptr_t __right = (uintptr_t)(RIGHT); \
+ if (!(__left OP __right)) \
+- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
++ libspl_assertf(__FILE__, __func__, __LINE__, \
+ "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
+ (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
+ } while (0)
+@@ -118,7 +118,7 @@ do { \
+ do { \
+ const uint64_t __left = (uint64_t)(LEFT); \
+ if (!(__left == 0)) \
+- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
++ libspl_assertf(__FILE__, __func__, __LINE__, \
+ "%s == 0 (0x%llx == 0)", #LEFT, \
+ (u_longlong_t)__left); \
+ } while (0)
+@@ -154,11 +154,11 @@ do { \
+ #define IMPLY(A, B) \
+ ((void)(((!(A)) || (B)) || \
+ libspl_assert("(" #A ") implies (" #B ")", \
+- __FILE__, __FUNCTION__, __LINE__)))
++ __FILE__, __func__, __LINE__)))
+ #define EQUIV(A, B) \
+ ((void)((!!(A) == !!(B)) || \
+ libspl_assert("(" #A ") is equivalent to (" #B ")", \
+- __FILE__, __FUNCTION__, __LINE__)))
++ __FILE__, __func__, __LINE__)))
+
+ #endif /* NDEBUG */
+
+diff --git a/module/os/freebsd/zfs/crypto_os.c b/module/os/freebsd/zfs/crypto_os.c
+index 1f139ea5b..c945a155f 100644
+--- a/module/os/freebsd/zfs/crypto_os.c
++++ b/module/os/freebsd/zfs/crypto_os.c
+@@ -227,7 +227,7 @@ freebsd_crypt_uio_debug_log(boolean_t encrypt,
+
+ printf("%s(%s, %p, { %s, %d, %d, %s }, %p, { %p, %u }, "
+ "%p, %u, %u)\n",
+- __FUNCTION__, encrypt ? "encrypt" : "decrypt", input_sessionp,
++ __func__, encrypt ? "encrypt" : "decrypt", input_sessionp,
+ c_info->ci_algname, c_info->ci_crypt_type,
+ (unsigned int)c_info->ci_keylen, c_info->ci_name,
+ data_uio, key->ck_data,
+@@ -263,7 +263,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
+
+ #ifdef FCRYPTO_DEBUG
+ printf("%s(%p, { %s, %d, %d, %s }, { %p, %u })\n",
+- __FUNCTION__, sessp,
++ __func__, sessp,
+ c_info->ci_algname, c_info->ci_crypt_type,
+ (unsigned int)c_info->ci_keylen, c_info->ci_name,
+ key->ck_data, (unsigned int)key->ck_length);
+@@ -328,7 +328,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
+ bad:
+ #ifdef FCRYPTO_DEBUG
+ if (error)
+- printf("%s: returning error %d\n", __FUNCTION__, error);
++ printf("%s: returning error %d\n", __func__, error);
+ #endif
+ return (error);
+ }
+@@ -384,7 +384,7 @@ freebsd_crypt_uio(boolean_t encrypt,
+ out:
+ #ifdef FCRYPTO_DEBUG
+ if (error)
+- printf("%s: returning error %d\n", __FUNCTION__, error);
++ printf("%s: returning error %d\n", __func__, error);
+ #endif
+ if (input_sessionp == NULL) {
+ freebsd_crypt_freesession(session);
+@@ -406,7 +406,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
+
+ #ifdef FCRYPTO_DEBUG
+ printf("%s(%p, { %s, %d, %d, %s }, { %p, %u })\n",
+- __FUNCTION__, sessp,
++ __func__, sessp,
+ c_info->ci_algname, c_info->ci_crypt_type,
+ (unsigned int)c_info->ci_keylen, c_info->ci_name,
+ key->ck_data, (unsigned int)key->ck_length);
+@@ -460,7 +460,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
+ #ifdef FCRYPTO_DEBUG
+ printf("%s(%d): Using crypt %s (key length %u [%u bytes]), "
+ "auth %s (key length %d)\n",
+- __FUNCTION__, __LINE__,
++ __func__, __LINE__,
+ xform->name, (unsigned int)key->ck_length,
+ (unsigned int)key->ck_length/8,
+ xauth->name, xauth->keysize);
+@@ -483,7 +483,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
+ CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE);
+ if (error != 0) {
+ printf("%s(%d): crypto_newsession failed with %d\n",
+- __FUNCTION__, __LINE__, error);
++ __func__, __LINE__, error);
+ goto bad;
+ }
+ sessp->fs_sid = sid;
+@@ -563,7 +563,7 @@ freebsd_crypt_uio(boolean_t encrypt,
+ #ifdef FCRYPTO_DEBUG
+ printf("%s(%d): Using crypt %s (key length %u [%u bytes]), "
+ "auth %s (key length %d)\n",
+- __FUNCTION__, __LINE__,
++ __func__, __LINE__,
+ xform->name, (unsigned int)key->ck_length,
+ (unsigned int)key->ck_length/8,
+ xauth->name, xauth->keysize);
+@@ -597,7 +597,7 @@ freebsd_crypt_uio(boolean_t encrypt,
+ auth_desc->crd_alg = xauth->type;
+ #ifdef FCRYPTO_DEBUG
+ printf("%s: auth: skip = %u, len = %u, inject = %u\n",
+- __FUNCTION__, auth_desc->crd_skip, auth_desc->crd_len,
++ __func__, auth_desc->crd_skip, auth_desc->crd_len,
+ auth_desc->crd_inject);
+ #endif
+
+@@ -611,7 +611,7 @@ freebsd_crypt_uio(boolean_t encrypt,
+
+ #ifdef FCRYPTO_DEBUG
+ printf("%s: enc: skip = %u, len = %u, inject = %u\n",
+- __FUNCTION__, enc_desc->crd_skip, enc_desc->crd_len,
++ __func__, enc_desc->crd_skip, enc_desc->crd_len,
+ enc_desc->crd_inject);
+ #endif
+
+@@ -628,7 +628,7 @@ out:
+ bad:
+ #ifdef FCRYPTO_DEBUG
+ if (error)
+- printf("%s: returning error %d\n", __FUNCTION__, error);
++ printf("%s: returning error %d\n", __func__, error);
+ #endif
+ return (error);
+ }
+diff --git a/module/os/freebsd/zfs/zfs_vfsops.c b/module/os/freebsd/zfs/zfs_vfsops.c
+index a972c720d..2d54636bb 100644
+--- a/module/os/freebsd/zfs/zfs_vfsops.c
++++ b/module/os/freebsd/zfs/zfs_vfsops.c
+@@ -262,7 +262,7 @@ zfs_getquota(zfsvfs_t *zfsvfs, uid_t id, int isgroup, struct dqblk64 *dqp)
+ if ((error = zap_lookup(zfsvfs->z_os, quotaobj,
+ buf, sizeof (quota), 1, "a)) != 0) {
+ dprintf("%s(%d): quotaobj lookup failed\n",
+- __FUNCTION__, __LINE__);
++ __func__, __LINE__);
+ goto done;
+ }
+ /*
+@@ -273,7 +273,7 @@ zfs_getquota(zfsvfs_t *zfsvfs, uid_t id, int isgroup, struct dqblk64 *dqp)
+ error = zap_lookup(zfsvfs->z_os, usedobj, buf, sizeof (used), 1, &used);
+ if (error && error != ENOENT) {
+ dprintf("%s(%d): usedobj failed; %d\n",
+- __FUNCTION__, __LINE__, error);
++ __func__, __LINE__, error);
+ goto done;
+ }
+ dqp->dqb_curblocks = btodb(used);
+diff --git a/module/os/freebsd/zfs/zio_crypt.c b/module/os/freebsd/zfs/zio_crypt.c
+index b08916b31..204666957 100644
+--- a/module/os/freebsd/zfs/zio_crypt.c
++++ b/module/os/freebsd/zfs/zio_crypt.c
+@@ -409,7 +409,7 @@ zio_do_crypt_uio_opencrypto(boolean_t encrypt, freebsd_crypt_session_t *sess,
+ if (ret != 0) {
+ #ifdef FCRYPTO_DEBUG
+ printf("%s(%d): Returning error %s\n",
+- __FUNCTION__, __LINE__, encrypt ? "EIO" : "ECKSUM");
++ __func__, __LINE__, encrypt ? "EIO" : "ECKSUM");
+ #endif
+ ret = SET_ERROR(encrypt ? EIO : ECKSUM);
+ }
+@@ -1176,7 +1176,7 @@ zio_crypt_do_indirect_mac_checksum_impl(boolean_t generate, void *buf,
+
+ if (memcmp(digestbuf, cksum, ZIO_DATA_MAC_LEN) != 0) {
+ #ifdef FCRYPTO_DEBUG
+- printf("%s(%d): Setting ECKSUM\n", __FUNCTION__, __LINE__);
++ printf("%s(%d): Setting ECKSUM\n", __func__, __LINE__);
+ #endif
+ return (SET_ERROR(ECKSUM));
+ }
+@@ -1700,7 +1700,7 @@ zio_do_crypt_data(boolean_t encrypt, zio_crypt_key_t *key,
+
+ #ifdef FCRYPTO_DEBUG
+ printf("%s(%s, %p, %p, %d, %p, %p, %u, %s, %p, %p, %p)\n",
+- __FUNCTION__,
++ __func__,
+ encrypt ? "encrypt" : "decrypt",
+ key, salt, ot, iv, mac, datalen,
+ byteswap ? "byteswap" : "native_endian", plainbuf,
+--
+2.37.3
+
diff --git a/pkg/zfs/patch/0005-Use-__func__-instead-of-obsolete-and-non-standard-__.patch b/pkg/zfs/patch/0005-Use-__func__-instead-of-obsolete-and-non-standard-__.patch
@@ -1,401 +0,0 @@
-From 35e48da3329aff4eee7bb3ff2ddd81d982cfa307 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sat, 21 Jan 2023 17:12:32 -0800
-Subject: [PATCH] Use __func__ instead of obsolete and non-standard
- __FUNCTION__
-
----
- include/os/freebsd/spl/sys/debug.h | 18 +++++++++---------
- include/os/linux/spl/sys/debug.h | 18 +++++++++---------
- lib/libspl/include/assert.h | 18 +++++++++---------
- module/os/freebsd/zfs/crypto_os.c | 22 +++++++++++-----------
- module/os/freebsd/zfs/zfs_vfsops.c | 4 ++--
- module/os/freebsd/zfs/zio_crypt.c | 6 +++---
- 6 files changed, 43 insertions(+), 43 deletions(-)
-
-diff --git a/include/os/freebsd/spl/sys/debug.h b/include/os/freebsd/spl/sys/debug.h
-index 1f820bc33..a5c12daa5 100644
---- a/include/os/freebsd/spl/sys/debug.h
-+++ b/include/os/freebsd/spl/sys/debug.h
-@@ -66,18 +66,18 @@ void spl_dumpstack(void);
-
- /* BEGIN CSTYLED */
- #define PANIC(fmt, a...) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, fmt, ## a)
-+ spl_panic(__FILE__, __func__, __LINE__, fmt, ## a)
-
- #define VERIFY(cond) \
- (void) (unlikely(!(cond)) && \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "%s", "VERIFY(" #cond ") failed\n"))
-
- #define VERIFY3B(LEFT, OP, RIGHT) do { \
- const boolean_t _verify3_left = (boolean_t)(LEFT); \
- const boolean_t _verify3_right = (boolean_t)(RIGHT);\
- if (unlikely(!(_verify3_left OP _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (%d " #OP " %d)\n", \
- (boolean_t) (_verify3_left), \
-@@ -88,7 +88,7 @@ void spl_dumpstack(void);
- const int64_t _verify3_left = (int64_t)(LEFT); \
- const int64_t _verify3_right = (int64_t)(RIGHT); \
- if (unlikely(!(_verify3_left OP _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (%lld " #OP " %lld)\n", \
- (long long) (_verify3_left), \
-@@ -99,7 +99,7 @@ void spl_dumpstack(void);
- const uint64_t _verify3_left = (uint64_t)(LEFT); \
- const uint64_t _verify3_right = (uint64_t)(RIGHT); \
- if (unlikely(!(_verify3_left OP _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (%llu " #OP " %llu)\n", \
- (unsigned long long) (_verify3_left), \
-@@ -110,7 +110,7 @@ void spl_dumpstack(void);
- const uintptr_t _verify3_left = (uintptr_t)(LEFT); \
- const uintptr_t _verify3_right = (uintptr_t)(RIGHT);\
- if (unlikely(!(_verify3_left OP _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (%px " #OP " %px)\n", \
- (void *) (_verify3_left), \
-@@ -121,7 +121,7 @@ void spl_dumpstack(void);
- const int64_t _verify3_left = (int64_t)(0); \
- const int64_t _verify3_right = (int64_t)(RIGHT); \
- if (unlikely(!(_verify3_left == _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(0 == " #RIGHT ") " \
- "failed (0 == %lld)\n", \
- (long long) (_verify3_right)); \
-@@ -155,11 +155,11 @@ void spl_dumpstack(void);
- #define ASSERT VERIFY
- #define IMPLY(A, B) \
- ((void)(likely((!(A)) || (B)) || \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "(" #A ") implies (" #B ")")))
- #define EQUIV(A, B) \
- ((void)(likely(!!(A) == !!(B)) || \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "(" #A ") is equivalent to (" #B ")")))
- /* END CSTYLED */
-
-diff --git a/include/os/linux/spl/sys/debug.h b/include/os/linux/spl/sys/debug.h
-index dc6b85eeb..b46c174cd 100644
---- a/include/os/linux/spl/sys/debug.h
-+++ b/include/os/linux/spl/sys/debug.h
-@@ -60,18 +60,18 @@ void spl_dumpstack(void);
-
- /* BEGIN CSTYLED */
- #define PANIC(fmt, a...) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, fmt, ## a)
-+ spl_panic(__FILE__, __func__, __LINE__, fmt, ## a)
-
- #define VERIFY(cond) \
- (void) (unlikely(!(cond)) && \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "%s", "VERIFY(" #cond ") failed\n"))
-
- #define VERIFY3B(LEFT, OP, RIGHT) do { \
- const boolean_t _verify3_left = (boolean_t)(LEFT); \
- const boolean_t _verify3_right = (boolean_t)(RIGHT);\
- if (unlikely(!(_verify3_left OP _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (%d " #OP " %d)\n", \
- (boolean_t) (_verify3_left), \
-@@ -82,7 +82,7 @@ void spl_dumpstack(void);
- const int64_t _verify3_left = (int64_t)(LEFT); \
- const int64_t _verify3_right = (int64_t)(RIGHT); \
- if (unlikely(!(_verify3_left OP _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (%lld " #OP " %lld)\n", \
- (long long) (_verify3_left), \
-@@ -93,7 +93,7 @@ void spl_dumpstack(void);
- const uint64_t _verify3_left = (uint64_t)(LEFT); \
- const uint64_t _verify3_right = (uint64_t)(RIGHT); \
- if (unlikely(!(_verify3_left OP _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (%llu " #OP " %llu)\n", \
- (unsigned long long) (_verify3_left), \
-@@ -104,7 +104,7 @@ void spl_dumpstack(void);
- const uintptr_t _verify3_left = (uintptr_t)(LEFT); \
- const uintptr_t _verify3_right = (uintptr_t)(RIGHT);\
- if (unlikely(!(_verify3_left OP _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (%px " #OP " %px)\n", \
- (void *) (_verify3_left), \
-@@ -115,7 +115,7 @@ void spl_dumpstack(void);
- const int64_t _verify3_left = (int64_t)(0); \
- const int64_t _verify3_right = (int64_t)(RIGHT); \
- if (unlikely(!(_verify3_left == _verify3_right))) \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "VERIFY3(0 == " #RIGHT ") " \
- "failed (0 == %lld)\n", \
- (long long) (_verify3_right)); \
-@@ -155,11 +155,11 @@ void spl_dumpstack(void);
- #define ASSERT VERIFY
- #define IMPLY(A, B) \
- ((void)(likely((!(A)) || (B)) || \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "(" #A ") implies (" #B ")")))
- #define EQUIV(A, B) \
- ((void)(likely(!!(A) == !!(B)) || \
-- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
-+ spl_panic(__FILE__, __func__, __LINE__, \
- "(" #A ") is equivalent to (" #B ")")))
- /* END CSTYLED */
-
-diff --git a/lib/libspl/include/assert.h b/lib/libspl/include/assert.h
-index 0503ce492..73f33077c 100644
---- a/lib/libspl/include/assert.h
-+++ b/lib/libspl/include/assert.h
-@@ -53,17 +53,17 @@ libspl_assert(const char *buf, const char *file, const char *func, int line)
-
- #define VERIFY(cond) \
- (void) ((!(cond)) && \
-- libspl_assert(#cond, __FILE__, __FUNCTION__, __LINE__))
-+ libspl_assert(#cond, __FILE__, __func__, __LINE__))
- #define verify(cond) \
- (void) ((!(cond)) && \
-- libspl_assert(#cond, __FILE__, __FUNCTION__, __LINE__))
-+ libspl_assert(#cond, __FILE__, __func__, __LINE__))
-
- #define VERIFY3B(LEFT, OP, RIGHT) \
- do { \
- const boolean_t __left = (boolean_t)(LEFT); \
- const boolean_t __right = (boolean_t)(RIGHT); \
- if (!(__left OP __right)) \
-- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
-+ libspl_assertf(__FILE__, __func__, __LINE__, \
- "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
- (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
- } while (0)
-@@ -73,7 +73,7 @@ do { \
- const int64_t __left = (int64_t)(LEFT); \
- const int64_t __right = (int64_t)(RIGHT); \
- if (!(__left OP __right)) \
-- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
-+ libspl_assertf(__FILE__, __func__, __LINE__, \
- "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
- (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
- } while (0)
-@@ -83,7 +83,7 @@ do { \
- const uint64_t __left = (uint64_t)(LEFT); \
- const uint64_t __right = (uint64_t)(RIGHT); \
- if (!(__left OP __right)) \
-- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
-+ libspl_assertf(__FILE__, __func__, __LINE__, \
- "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
- (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
- } while (0)
-@@ -93,7 +93,7 @@ do { \
- const uintptr_t __left = (uintptr_t)(LEFT); \
- const uintptr_t __right = (uintptr_t)(RIGHT); \
- if (!(__left OP __right)) \
-- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
-+ libspl_assertf(__FILE__, __func__, __LINE__, \
- "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \
- (u_longlong_t)__left, #OP, (u_longlong_t)__right); \
- } while (0)
-@@ -102,7 +102,7 @@ do { \
- do { \
- const uint64_t __left = (uint64_t)(LEFT); \
- if (!(__left == 0)) \
-- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \
-+ libspl_assertf(__FILE__, __func__, __LINE__, \
- "%s == 0 (0x%llx == 0)", #LEFT, \
- (u_longlong_t)__left); \
- } while (0)
-@@ -140,11 +140,11 @@ do { \
- #define IMPLY(A, B) \
- ((void)(((!(A)) || (B)) || \
- libspl_assert("(" #A ") implies (" #B ")", \
-- __FILE__, __FUNCTION__, __LINE__)))
-+ __FILE__, __func__, __LINE__)))
- #define EQUIV(A, B) \
- ((void)((!!(A) == !!(B)) || \
- libspl_assert("(" #A ") is equivalent to (" #B ")", \
-- __FILE__, __FUNCTION__, __LINE__)))
-+ __FILE__, __func__, __LINE__)))
-
- #endif /* NDEBUG */
-
-diff --git a/module/os/freebsd/zfs/crypto_os.c b/module/os/freebsd/zfs/crypto_os.c
-index f342c5e85..0ebc56e95 100644
---- a/module/os/freebsd/zfs/crypto_os.c
-+++ b/module/os/freebsd/zfs/crypto_os.c
-@@ -229,7 +229,7 @@ freebsd_crypt_uio_debug_log(boolean_t encrypt,
-
- printf("%s(%s, %p, { %s, %d, %d, %s }, %p, { %d, %p, %u }, "
- "%p, %u, %u)\n",
-- __FUNCTION__, encrypt ? "encrypt" : "decrypt", input_sessionp,
-+ __func__, encrypt ? "encrypt" : "decrypt", input_sessionp,
- c_info->ci_algname, c_info->ci_crypt_type,
- (unsigned int)c_info->ci_keylen, c_info->ci_name,
- data_uio, key->ck_format, key->ck_data,
-@@ -265,7 +265,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
-
- #ifdef FCRYPTO_DEBUG
- printf("%s(%p, { %s, %d, %d, %s }, { %d, %p, %u })\n",
-- __FUNCTION__, sessp,
-+ __func__, sessp,
- c_info->ci_algname, c_info->ci_crypt_type,
- (unsigned int)c_info->ci_keylen, c_info->ci_name,
- key->ck_format, key->ck_data, (unsigned int)key->ck_length);
-@@ -331,7 +331,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
- bad:
- #ifdef FCRYPTO_DEBUG
- if (error)
-- printf("%s: returning error %d\n", __FUNCTION__, error);
-+ printf("%s: returning error %d\n", __func__, error);
- #endif
- return (error);
- }
-@@ -387,7 +387,7 @@ freebsd_crypt_uio(boolean_t encrypt,
- out:
- #ifdef FCRYPTO_DEBUG
- if (error)
-- printf("%s: returning error %d\n", __FUNCTION__, error);
-+ printf("%s: returning error %d\n", __func__, error);
- #endif
- if (input_sessionp == NULL) {
- freebsd_crypt_freesession(session);
-@@ -409,7 +409,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
-
- #ifdef FCRYPTO_DEBUG
- printf("%s(%p, { %s, %d, %d, %s }, { %d, %p, %u })\n",
-- __FUNCTION__, sessp,
-+ __func__, sessp,
- c_info->ci_algname, c_info->ci_crypt_type,
- (unsigned int)c_info->ci_keylen, c_info->ci_name,
- key->ck_format, key->ck_data, (unsigned int)key->ck_length);
-@@ -463,7 +463,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
- #ifdef FCRYPTO_DEBUG
- printf("%s(%d): Using crypt %s (key length %u [%u bytes]), "
- "auth %s (key length %d)\n",
-- __FUNCTION__, __LINE__,
-+ __func__, __LINE__,
- xform->name, (unsigned int)key->ck_length,
- (unsigned int)key->ck_length/8,
- xauth->name, xauth->keysize);
-@@ -489,7 +489,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp,
- CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE);
- if (error != 0) {
- printf("%s(%d): crypto_newsession failed with %d\n",
-- __FUNCTION__, __LINE__, error);
-+ __func__, __LINE__, error);
- goto bad;
- }
- sessp->fs_sid = sid;
-@@ -569,7 +569,7 @@ freebsd_crypt_uio(boolean_t encrypt,
- #ifdef FCRYPTO_DEBUG
- printf("%s(%d): Using crypt %s (key length %u [%u bytes]), "
- "auth %s (key length %d)\n",
-- __FUNCTION__, __LINE__,
-+ __func__, __LINE__,
- xform->name, (unsigned int)key->ck_length,
- (unsigned int)key->ck_length/8,
- xauth->name, xauth->keysize);
-@@ -603,7 +603,7 @@ freebsd_crypt_uio(boolean_t encrypt,
- auth_desc->crd_alg = xauth->type;
- #ifdef FCRYPTO_DEBUG
- printf("%s: auth: skip = %u, len = %u, inject = %u\n",
-- __FUNCTION__, auth_desc->crd_skip, auth_desc->crd_len,
-+ __func__, auth_desc->crd_skip, auth_desc->crd_len,
- auth_desc->crd_inject);
- #endif
-
-@@ -617,7 +617,7 @@ freebsd_crypt_uio(boolean_t encrypt,
-
- #ifdef FCRYPTO_DEBUG
- printf("%s: enc: skip = %u, len = %u, inject = %u\n",
-- __FUNCTION__, enc_desc->crd_skip, enc_desc->crd_len,
-+ __func__, enc_desc->crd_skip, enc_desc->crd_len,
- enc_desc->crd_inject);
- #endif
-
-@@ -634,7 +634,7 @@ out:
- bad:
- #ifdef FCRYPTO_DEBUG
- if (error)
-- printf("%s: returning error %d\n", __FUNCTION__, error);
-+ printf("%s: returning error %d\n", __func__, error);
- #endif
- return (error);
- }
-diff --git a/module/os/freebsd/zfs/zfs_vfsops.c b/module/os/freebsd/zfs/zfs_vfsops.c
-index 05d41d4e3..01b12b12c 100644
---- a/module/os/freebsd/zfs/zfs_vfsops.c
-+++ b/module/os/freebsd/zfs/zfs_vfsops.c
-@@ -244,7 +244,7 @@ zfs_getquota(zfsvfs_t *zfsvfs, uid_t id, int isgroup, struct dqblk64 *dqp)
- if ((error = zap_lookup(zfsvfs->z_os, quotaobj,
- buf, sizeof (quota), 1, "a)) != 0) {
- dprintf("%s(%d): quotaobj lookup failed\n",
-- __FUNCTION__, __LINE__);
-+ __func__, __LINE__);
- goto done;
- }
- /*
-@@ -255,7 +255,7 @@ zfs_getquota(zfsvfs_t *zfsvfs, uid_t id, int isgroup, struct dqblk64 *dqp)
- error = zap_lookup(zfsvfs->z_os, usedobj, buf, sizeof (used), 1, &used);
- if (error && error != ENOENT) {
- dprintf("%s(%d): usedobj failed; %d\n",
-- __FUNCTION__, __LINE__, error);
-+ __func__, __LINE__, error);
- goto done;
- }
- dqp->dqb_curblocks = btodb(used);
-diff --git a/module/os/freebsd/zfs/zio_crypt.c b/module/os/freebsd/zfs/zio_crypt.c
-index 9e0ab52a2..997f2492f 100644
---- a/module/os/freebsd/zfs/zio_crypt.c
-+++ b/module/os/freebsd/zfs/zio_crypt.c
-@@ -420,7 +420,7 @@ zio_do_crypt_uio_opencrypto(boolean_t encrypt, freebsd_crypt_session_t *sess,
- if (ret != 0) {
- #ifdef FCRYPTO_DEBUG
- printf("%s(%d): Returning error %s\n",
-- __FUNCTION__, __LINE__, encrypt ? "EIO" : "ECKSUM");
-+ __func__, __LINE__, encrypt ? "EIO" : "ECKSUM");
- #endif
- ret = SET_ERROR(encrypt ? EIO : ECKSUM);
- }
-@@ -1195,7 +1195,7 @@ zio_crypt_do_indirect_mac_checksum_impl(boolean_t generate, void *buf,
-
- if (bcmp(digestbuf, cksum, ZIO_DATA_MAC_LEN) != 0) {
- #ifdef FCRYPTO_DEBUG
-- printf("%s(%d): Setting ECKSUM\n", __FUNCTION__, __LINE__);
-+ printf("%s(%d): Setting ECKSUM\n", __func__, __LINE__);
- #endif
- return (SET_ERROR(ECKSUM));
- }
-@@ -1700,7 +1700,7 @@ zio_do_crypt_data(boolean_t encrypt, zio_crypt_key_t *key,
-
- #ifdef FCRYPTO_DEBUG
- printf("%s(%s, %p, %p, %d, %p, %p, %u, %s, %p, %p, %p)\n",
-- __FUNCTION__,
-+ __func__,
- encrypt ? "encrypt" : "decrypt",
- key, salt, ot, iv, mac, datalen,
- byteswap ? "byteswap" : "native_endian", plainbuf,
---
-2.37.3
-
diff --git a/pkg/zfs/patch/0005-Use-forward-declaration-instead-of-empty-struct.patch b/pkg/zfs/patch/0005-Use-forward-declaration-instead-of-empty-struct.patch
@@ -0,0 +1,25 @@
+From 1c52610d16cd241e61c74ab7588edfdf00b945c3 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 21 Jan 2023 17:15:47 -0800
+Subject: [PATCH] Use forward declaration instead of empty struct
+
+---
+ include/sys/zfs_context.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h
+index 750ca612b..7c8cf33ca 100644
+--- a/include/sys/zfs_context.h
++++ b/include/sys/zfs_context.h
+@@ -383,7 +383,7 @@ typedef struct procfs_list {
+ } procfs_list_t;
+
+ #ifndef __cplusplus
+-struct seq_file { };
++struct seq_file;
+ void seq_printf(struct seq_file *m, const char *fmt, ...);
+
+ typedef struct procfs_list_node {
+--
+2.37.3
+
diff --git a/pkg/zfs/patch/0006-Avoid-conflict-with-C23-bool-keyword.patch b/pkg/zfs/patch/0006-Avoid-conflict-with-C23-bool-keyword.patch
@@ -0,0 +1,25 @@
+From 2f6ff5f479fc24f2c4cf7e3a30470a3aadb55607 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 21 Jan 2023 17:18:50 -0800
+Subject: [PATCH] Avoid conflict with C23 bool keyword
+
+---
+ cmd/zed/agents/fmd_api.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmd/zed/agents/fmd_api.h b/cmd/zed/agents/fmd_api.h
+index b940d0d39..7c485a9c9 100644
+--- a/cmd/zed/agents/fmd_api.h
++++ b/cmd/zed/agents/fmd_api.h
+@@ -105,7 +105,7 @@ typedef struct fmd_stat {
+ uint_t fmds_type; /* statistic type (see above) */
+ char fmds_desc[64]; /* statistic description */
+ union {
+- int bool; /* FMD_TYPE_BOOL */
++ int b; /* FMD_TYPE_BOOL */
+ int32_t i32; /* FMD_TYPE_INT32 */
+ uint32_t ui32; /* FMD_TYPE_UINT32 */
+ int64_t i64; /* FMD_TYPE_INT64 */
+--
+2.37.3
+
diff --git a/pkg/zfs/patch/0006-Use-forward-declaration-instead-of-empty-struct.patch b/pkg/zfs/patch/0006-Use-forward-declaration-instead-of-empty-struct.patch
@@ -1,25 +0,0 @@
-From 50878832d41ef03d61f5db2dc7a89039b2ba5889 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sat, 21 Jan 2023 17:15:47 -0800
-Subject: [PATCH] Use forward declaration instead of empty struct
-
----
- include/sys/zfs_context.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h
-index a6ff94317..42384d83a 100644
---- a/include/sys/zfs_context.h
-+++ b/include/sys/zfs_context.h
-@@ -380,7 +380,7 @@ typedef struct procfs_list {
- } procfs_list_t;
-
- #ifndef __cplusplus
--struct seq_file { };
-+struct seq_file;
- void seq_printf(struct seq_file *m, const char *fmt, ...);
-
- typedef struct procfs_list_node {
---
-2.37.3
-
diff --git a/pkg/zfs/patch/0007-Avoid-conflict-with-C23-bool-keyword.patch b/pkg/zfs/patch/0007-Avoid-conflict-with-C23-bool-keyword.patch
@@ -1,25 +0,0 @@
-From bf9e24e3fe87474e71555b3421bfaa7d0c5e1882 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sat, 21 Jan 2023 17:18:50 -0800
-Subject: [PATCH] Avoid conflict with C23 bool keyword
-
----
- cmd/zed/agents/fmd_api.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cmd/zed/agents/fmd_api.h b/cmd/zed/agents/fmd_api.h
-index 4f06fb244..45c1f2ce2 100644
---- a/cmd/zed/agents/fmd_api.h
-+++ b/cmd/zed/agents/fmd_api.h
-@@ -109,7 +109,7 @@ typedef struct fmd_stat {
- uint_t fmds_type; /* statistic type (see above) */
- char fmds_desc[64]; /* statistic description */
- union {
-- int bool; /* FMD_TYPE_BOOL */
-+ int b; /* FMD_TYPE_BOOL */
- int32_t i32; /* FMD_TYPE_INT32 */
- uint32_t ui32; /* FMD_TYPE_UINT32 */
- int64_t i64; /* FMD_TYPE_INT64 */
---
-2.37.3
-
diff --git a/pkg/zfs/patch/0007-Remove-stray-at-top-level.patch b/pkg/zfs/patch/0007-Remove-stray-at-top-level.patch
@@ -0,0 +1,392 @@
+From b40890a5c47a69abfe96490b053f71be5ab09166 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 21 Jan 2023 17:17:48 -0800
+Subject: [PATCH] Remove stray ';' at top-level
+
+---
+ module/avl/avl.c | 36 ++---
+ module/nvpair/nvpair.c | 232 ++++++++++++++++-----------------
+ module/zcommon/zfs_namecheck.c | 20 +--
+ module/zcommon/zfs_prop.c | 42 +++---
+ 4 files changed, 165 insertions(+), 165 deletions(-)
+
+diff --git a/module/avl/avl.c b/module/avl/avl.c
+index 9b74531fa..283c8e297 100644
+--- a/module/avl/avl.c
++++ b/module/avl/avl.c
+@@ -1032,21 +1032,21 @@ done:
+ return (AVL_NODE2DATA(node, off));
+ }
+
+-EXPORT_SYMBOL(avl_create);
+-EXPORT_SYMBOL(avl_find);
+-EXPORT_SYMBOL(avl_insert);
+-EXPORT_SYMBOL(avl_insert_here);
+-EXPORT_SYMBOL(avl_walk);
+-EXPORT_SYMBOL(avl_first);
+-EXPORT_SYMBOL(avl_last);
+-EXPORT_SYMBOL(avl_nearest);
+-EXPORT_SYMBOL(avl_add);
+-EXPORT_SYMBOL(avl_swap);
+-EXPORT_SYMBOL(avl_is_empty);
+-EXPORT_SYMBOL(avl_remove);
+-EXPORT_SYMBOL(avl_numnodes);
+-EXPORT_SYMBOL(avl_destroy_nodes);
+-EXPORT_SYMBOL(avl_destroy);
+-EXPORT_SYMBOL(avl_update_lt);
+-EXPORT_SYMBOL(avl_update_gt);
+-EXPORT_SYMBOL(avl_update);
++EXPORT_SYMBOL(avl_create)
++EXPORT_SYMBOL(avl_find)
++EXPORT_SYMBOL(avl_insert)
++EXPORT_SYMBOL(avl_insert_here)
++EXPORT_SYMBOL(avl_walk)
++EXPORT_SYMBOL(avl_first)
++EXPORT_SYMBOL(avl_last)
++EXPORT_SYMBOL(avl_nearest)
++EXPORT_SYMBOL(avl_add)
++EXPORT_SYMBOL(avl_swap)
++EXPORT_SYMBOL(avl_is_empty)
++EXPORT_SYMBOL(avl_remove)
++EXPORT_SYMBOL(avl_numnodes)
++EXPORT_SYMBOL(avl_destroy_nodes)
++EXPORT_SYMBOL(avl_destroy)
++EXPORT_SYMBOL(avl_update_lt)
++EXPORT_SYMBOL(avl_update_gt)
++EXPORT_SYMBOL(avl_update)
+diff --git a/module/nvpair/nvpair.c b/module/nvpair/nvpair.c
+index d9449e47e..5626e2025 100644
+--- a/module/nvpair/nvpair.c
++++ b/module/nvpair/nvpair.c
+@@ -3281,13 +3281,13 @@ nvs_xdr_nvp_##type(XDR *xdrs, void *ptr, ...) \
+ #endif
+
+ /* BEGIN CSTYLED */
+-NVS_BUILD_XDRPROC_T(char);
+-NVS_BUILD_XDRPROC_T(short);
+-NVS_BUILD_XDRPROC_T(u_short);
+-NVS_BUILD_XDRPROC_T(int);
+-NVS_BUILD_XDRPROC_T(u_int);
+-NVS_BUILD_XDRPROC_T(longlong_t);
+-NVS_BUILD_XDRPROC_T(u_longlong_t);
++NVS_BUILD_XDRPROC_T(char)
++NVS_BUILD_XDRPROC_T(short)
++NVS_BUILD_XDRPROC_T(u_short)
++NVS_BUILD_XDRPROC_T(int)
++NVS_BUILD_XDRPROC_T(u_int)
++NVS_BUILD_XDRPROC_T(longlong_t)
++NVS_BUILD_XDRPROC_T(u_longlong_t)
+ /* END CSTYLED */
+
+ /*
+@@ -3681,116 +3681,116 @@ nvs_xdr(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
+ return (err);
+ }
+
+-EXPORT_SYMBOL(nv_alloc_init);
+-EXPORT_SYMBOL(nv_alloc_reset);
+-EXPORT_SYMBOL(nv_alloc_fini);
++EXPORT_SYMBOL(nv_alloc_init)
++EXPORT_SYMBOL(nv_alloc_reset)
++EXPORT_SYMBOL(nv_alloc_fini)
+
+ /* list management */
+-EXPORT_SYMBOL(nvlist_alloc);
+-EXPORT_SYMBOL(nvlist_free);
+-EXPORT_SYMBOL(nvlist_size);
+-EXPORT_SYMBOL(nvlist_pack);
+-EXPORT_SYMBOL(nvlist_unpack);
+-EXPORT_SYMBOL(nvlist_dup);
+-EXPORT_SYMBOL(nvlist_merge);
+-
+-EXPORT_SYMBOL(nvlist_xalloc);
+-EXPORT_SYMBOL(nvlist_xpack);
+-EXPORT_SYMBOL(nvlist_xunpack);
+-EXPORT_SYMBOL(nvlist_xdup);
+-EXPORT_SYMBOL(nvlist_lookup_nv_alloc);
+-
+-EXPORT_SYMBOL(nvlist_add_nvpair);
+-EXPORT_SYMBOL(nvlist_add_boolean);
+-EXPORT_SYMBOL(nvlist_add_boolean_value);
+-EXPORT_SYMBOL(nvlist_add_byte);
+-EXPORT_SYMBOL(nvlist_add_int8);
+-EXPORT_SYMBOL(nvlist_add_uint8);
+-EXPORT_SYMBOL(nvlist_add_int16);
+-EXPORT_SYMBOL(nvlist_add_uint16);
+-EXPORT_SYMBOL(nvlist_add_int32);
+-EXPORT_SYMBOL(nvlist_add_uint32);
+-EXPORT_SYMBOL(nvlist_add_int64);
+-EXPORT_SYMBOL(nvlist_add_uint64);
+-EXPORT_SYMBOL(nvlist_add_string);
+-EXPORT_SYMBOL(nvlist_add_nvlist);
+-EXPORT_SYMBOL(nvlist_add_boolean_array);
+-EXPORT_SYMBOL(nvlist_add_byte_array);
+-EXPORT_SYMBOL(nvlist_add_int8_array);
+-EXPORT_SYMBOL(nvlist_add_uint8_array);
+-EXPORT_SYMBOL(nvlist_add_int16_array);
+-EXPORT_SYMBOL(nvlist_add_uint16_array);
+-EXPORT_SYMBOL(nvlist_add_int32_array);
+-EXPORT_SYMBOL(nvlist_add_uint32_array);
+-EXPORT_SYMBOL(nvlist_add_int64_array);
+-EXPORT_SYMBOL(nvlist_add_uint64_array);
+-EXPORT_SYMBOL(nvlist_add_string_array);
+-EXPORT_SYMBOL(nvlist_add_nvlist_array);
+-EXPORT_SYMBOL(nvlist_next_nvpair);
+-EXPORT_SYMBOL(nvlist_prev_nvpair);
+-EXPORT_SYMBOL(nvlist_empty);
+-EXPORT_SYMBOL(nvlist_add_hrtime);
+-
+-EXPORT_SYMBOL(nvlist_remove);
+-EXPORT_SYMBOL(nvlist_remove_nvpair);
+-EXPORT_SYMBOL(nvlist_remove_all);
+-
+-EXPORT_SYMBOL(nvlist_lookup_boolean);
+-EXPORT_SYMBOL(nvlist_lookup_boolean_value);
+-EXPORT_SYMBOL(nvlist_lookup_byte);
+-EXPORT_SYMBOL(nvlist_lookup_int8);
+-EXPORT_SYMBOL(nvlist_lookup_uint8);
+-EXPORT_SYMBOL(nvlist_lookup_int16);
+-EXPORT_SYMBOL(nvlist_lookup_uint16);
+-EXPORT_SYMBOL(nvlist_lookup_int32);
+-EXPORT_SYMBOL(nvlist_lookup_uint32);
+-EXPORT_SYMBOL(nvlist_lookup_int64);
+-EXPORT_SYMBOL(nvlist_lookup_uint64);
+-EXPORT_SYMBOL(nvlist_lookup_string);
+-EXPORT_SYMBOL(nvlist_lookup_nvlist);
+-EXPORT_SYMBOL(nvlist_lookup_boolean_array);
+-EXPORT_SYMBOL(nvlist_lookup_byte_array);
+-EXPORT_SYMBOL(nvlist_lookup_int8_array);
+-EXPORT_SYMBOL(nvlist_lookup_uint8_array);
+-EXPORT_SYMBOL(nvlist_lookup_int16_array);
+-EXPORT_SYMBOL(nvlist_lookup_uint16_array);
+-EXPORT_SYMBOL(nvlist_lookup_int32_array);
+-EXPORT_SYMBOL(nvlist_lookup_uint32_array);
+-EXPORT_SYMBOL(nvlist_lookup_int64_array);
+-EXPORT_SYMBOL(nvlist_lookup_uint64_array);
+-EXPORT_SYMBOL(nvlist_lookup_string_array);
+-EXPORT_SYMBOL(nvlist_lookup_nvlist_array);
+-EXPORT_SYMBOL(nvlist_lookup_hrtime);
+-EXPORT_SYMBOL(nvlist_lookup_pairs);
+-
+-EXPORT_SYMBOL(nvlist_lookup_nvpair);
+-EXPORT_SYMBOL(nvlist_exists);
++EXPORT_SYMBOL(nvlist_alloc)
++EXPORT_SYMBOL(nvlist_free)
++EXPORT_SYMBOL(nvlist_size)
++EXPORT_SYMBOL(nvlist_pack)
++EXPORT_SYMBOL(nvlist_unpack)
++EXPORT_SYMBOL(nvlist_dup)
++EXPORT_SYMBOL(nvlist_merge)
++
++EXPORT_SYMBOL(nvlist_xalloc)
++EXPORT_SYMBOL(nvlist_xpack)
++EXPORT_SYMBOL(nvlist_xunpack)
++EXPORT_SYMBOL(nvlist_xdup)
++EXPORT_SYMBOL(nvlist_lookup_nv_alloc)
++
++EXPORT_SYMBOL(nvlist_add_nvpair)
++EXPORT_SYMBOL(nvlist_add_boolean)
++EXPORT_SYMBOL(nvlist_add_boolean_value)
++EXPORT_SYMBOL(nvlist_add_byte)
++EXPORT_SYMBOL(nvlist_add_int8)
++EXPORT_SYMBOL(nvlist_add_uint8)
++EXPORT_SYMBOL(nvlist_add_int16)
++EXPORT_SYMBOL(nvlist_add_uint16)
++EXPORT_SYMBOL(nvlist_add_int32)
++EXPORT_SYMBOL(nvlist_add_uint32)
++EXPORT_SYMBOL(nvlist_add_int64)
++EXPORT_SYMBOL(nvlist_add_uint64)
++EXPORT_SYMBOL(nvlist_add_string)
++EXPORT_SYMBOL(nvlist_add_nvlist)
++EXPORT_SYMBOL(nvlist_add_boolean_array)
++EXPORT_SYMBOL(nvlist_add_byte_array)
++EXPORT_SYMBOL(nvlist_add_int8_array)
++EXPORT_SYMBOL(nvlist_add_uint8_array)
++EXPORT_SYMBOL(nvlist_add_int16_array)
++EXPORT_SYMBOL(nvlist_add_uint16_array)
++EXPORT_SYMBOL(nvlist_add_int32_array)
++EXPORT_SYMBOL(nvlist_add_uint32_array)
++EXPORT_SYMBOL(nvlist_add_int64_array)
++EXPORT_SYMBOL(nvlist_add_uint64_array)
++EXPORT_SYMBOL(nvlist_add_string_array)
++EXPORT_SYMBOL(nvlist_add_nvlist_array)
++EXPORT_SYMBOL(nvlist_next_nvpair)
++EXPORT_SYMBOL(nvlist_prev_nvpair)
++EXPORT_SYMBOL(nvlist_empty)
++EXPORT_SYMBOL(nvlist_add_hrtime)
++
++EXPORT_SYMBOL(nvlist_remove)
++EXPORT_SYMBOL(nvlist_remove_nvpair)
++EXPORT_SYMBOL(nvlist_remove_all)
++
++EXPORT_SYMBOL(nvlist_lookup_boolean)
++EXPORT_SYMBOL(nvlist_lookup_boolean_value)
++EXPORT_SYMBOL(nvlist_lookup_byte)
++EXPORT_SYMBOL(nvlist_lookup_int8)
++EXPORT_SYMBOL(nvlist_lookup_uint8)
++EXPORT_SYMBOL(nvlist_lookup_int16)
++EXPORT_SYMBOL(nvlist_lookup_uint16)
++EXPORT_SYMBOL(nvlist_lookup_int32)
++EXPORT_SYMBOL(nvlist_lookup_uint32)
++EXPORT_SYMBOL(nvlist_lookup_int64)
++EXPORT_SYMBOL(nvlist_lookup_uint64)
++EXPORT_SYMBOL(nvlist_lookup_string)
++EXPORT_SYMBOL(nvlist_lookup_nvlist)
++EXPORT_SYMBOL(nvlist_lookup_boolean_array)
++EXPORT_SYMBOL(nvlist_lookup_byte_array)
++EXPORT_SYMBOL(nvlist_lookup_int8_array)
++EXPORT_SYMBOL(nvlist_lookup_uint8_array)
++EXPORT_SYMBOL(nvlist_lookup_int16_array)
++EXPORT_SYMBOL(nvlist_lookup_uint16_array)
++EXPORT_SYMBOL(nvlist_lookup_int32_array)
++EXPORT_SYMBOL(nvlist_lookup_uint32_array)
++EXPORT_SYMBOL(nvlist_lookup_int64_array)
++EXPORT_SYMBOL(nvlist_lookup_uint64_array)
++EXPORT_SYMBOL(nvlist_lookup_string_array)
++EXPORT_SYMBOL(nvlist_lookup_nvlist_array)
++EXPORT_SYMBOL(nvlist_lookup_hrtime)
++EXPORT_SYMBOL(nvlist_lookup_pairs)
++
++EXPORT_SYMBOL(nvlist_lookup_nvpair)
++EXPORT_SYMBOL(nvlist_exists)
+
+ /* processing nvpair */
+-EXPORT_SYMBOL(nvpair_name);
+-EXPORT_SYMBOL(nvpair_type);
+-EXPORT_SYMBOL(nvpair_value_boolean_value);
+-EXPORT_SYMBOL(nvpair_value_byte);
+-EXPORT_SYMBOL(nvpair_value_int8);
+-EXPORT_SYMBOL(nvpair_value_uint8);
+-EXPORT_SYMBOL(nvpair_value_int16);
+-EXPORT_SYMBOL(nvpair_value_uint16);
+-EXPORT_SYMBOL(nvpair_value_int32);
+-EXPORT_SYMBOL(nvpair_value_uint32);
+-EXPORT_SYMBOL(nvpair_value_int64);
+-EXPORT_SYMBOL(nvpair_value_uint64);
+-EXPORT_SYMBOL(nvpair_value_string);
+-EXPORT_SYMBOL(nvpair_value_nvlist);
+-EXPORT_SYMBOL(nvpair_value_boolean_array);
+-EXPORT_SYMBOL(nvpair_value_byte_array);
+-EXPORT_SYMBOL(nvpair_value_int8_array);
+-EXPORT_SYMBOL(nvpair_value_uint8_array);
+-EXPORT_SYMBOL(nvpair_value_int16_array);
+-EXPORT_SYMBOL(nvpair_value_uint16_array);
+-EXPORT_SYMBOL(nvpair_value_int32_array);
+-EXPORT_SYMBOL(nvpair_value_uint32_array);
+-EXPORT_SYMBOL(nvpair_value_int64_array);
+-EXPORT_SYMBOL(nvpair_value_uint64_array);
+-EXPORT_SYMBOL(nvpair_value_string_array);
+-EXPORT_SYMBOL(nvpair_value_nvlist_array);
+-EXPORT_SYMBOL(nvpair_value_hrtime);
++EXPORT_SYMBOL(nvpair_name)
++EXPORT_SYMBOL(nvpair_type)
++EXPORT_SYMBOL(nvpair_value_boolean_value)
++EXPORT_SYMBOL(nvpair_value_byte)
++EXPORT_SYMBOL(nvpair_value_int8)
++EXPORT_SYMBOL(nvpair_value_uint8)
++EXPORT_SYMBOL(nvpair_value_int16)
++EXPORT_SYMBOL(nvpair_value_uint16)
++EXPORT_SYMBOL(nvpair_value_int32)
++EXPORT_SYMBOL(nvpair_value_uint32)
++EXPORT_SYMBOL(nvpair_value_int64)
++EXPORT_SYMBOL(nvpair_value_uint64)
++EXPORT_SYMBOL(nvpair_value_string)
++EXPORT_SYMBOL(nvpair_value_nvlist)
++EXPORT_SYMBOL(nvpair_value_boolean_array)
++EXPORT_SYMBOL(nvpair_value_byte_array)
++EXPORT_SYMBOL(nvpair_value_int8_array)
++EXPORT_SYMBOL(nvpair_value_uint8_array)
++EXPORT_SYMBOL(nvpair_value_int16_array)
++EXPORT_SYMBOL(nvpair_value_uint16_array)
++EXPORT_SYMBOL(nvpair_value_int32_array)
++EXPORT_SYMBOL(nvpair_value_uint32_array)
++EXPORT_SYMBOL(nvpair_value_int64_array)
++EXPORT_SYMBOL(nvpair_value_uint64_array)
++EXPORT_SYMBOL(nvpair_value_string_array)
++EXPORT_SYMBOL(nvpair_value_nvlist_array)
++EXPORT_SYMBOL(nvpair_value_hrtime)
+diff --git a/module/zcommon/zfs_namecheck.c b/module/zcommon/zfs_namecheck.c
+index 273b219a9..41099c7f0 100644
+--- a/module/zcommon/zfs_namecheck.c
++++ b/module/zcommon/zfs_namecheck.c
+@@ -453,15 +453,15 @@ pool_namecheck(const char *pool, namecheck_err_t *why, char *what)
+ return (0);
+ }
+
+-EXPORT_SYMBOL(entity_namecheck);
+-EXPORT_SYMBOL(pool_namecheck);
+-EXPORT_SYMBOL(dataset_namecheck);
+-EXPORT_SYMBOL(bookmark_namecheck);
+-EXPORT_SYMBOL(snapshot_namecheck);
+-EXPORT_SYMBOL(zfs_component_namecheck);
+-EXPORT_SYMBOL(dataset_nestcheck);
+-EXPORT_SYMBOL(get_dataset_depth);
+-EXPORT_SYMBOL(zfs_max_dataset_nesting);
++EXPORT_SYMBOL(entity_namecheck)
++EXPORT_SYMBOL(pool_namecheck)
++EXPORT_SYMBOL(dataset_namecheck)
++EXPORT_SYMBOL(bookmark_namecheck)
++EXPORT_SYMBOL(snapshot_namecheck)
++EXPORT_SYMBOL(zfs_component_namecheck)
++EXPORT_SYMBOL(dataset_nestcheck)
++EXPORT_SYMBOL(get_dataset_depth)
++EXPORT_SYMBOL(zfs_max_dataset_nesting)
+
+ ZFS_MODULE_PARAM(zfs, zfs_, max_dataset_nesting, INT, ZMOD_RW,
+- "Limit to the amount of nesting a path can have. Defaults to 50.");
++ "Limit to the amount of nesting a path can have. Defaults to 50.")
+diff --git a/module/zcommon/zfs_prop.c b/module/zcommon/zfs_prop.c
+index 3db6fd13f..13c63a36c 100644
+--- a/module/zcommon/zfs_prop.c
++++ b/module/zcommon/zfs_prop.c
+@@ -1076,26 +1076,26 @@ module_exit(zcommon_fini);
+ #endif
+
+ /* zfs dataset property functions */
+-EXPORT_SYMBOL(zfs_userquota_prop_prefixes);
+-EXPORT_SYMBOL(zfs_prop_init);
+-EXPORT_SYMBOL(zfs_prop_get_type);
+-EXPORT_SYMBOL(zfs_prop_get_table);
+-EXPORT_SYMBOL(zfs_prop_delegatable);
+-EXPORT_SYMBOL(zfs_prop_visible);
++EXPORT_SYMBOL(zfs_userquota_prop_prefixes)
++EXPORT_SYMBOL(zfs_prop_init)
++EXPORT_SYMBOL(zfs_prop_get_type)
++EXPORT_SYMBOL(zfs_prop_get_table)
++EXPORT_SYMBOL(zfs_prop_delegatable)
++EXPORT_SYMBOL(zfs_prop_visible)
+
+ /* Dataset property functions shared between libzfs and kernel. */
+-EXPORT_SYMBOL(zfs_prop_default_string);
+-EXPORT_SYMBOL(zfs_prop_default_numeric);
+-EXPORT_SYMBOL(zfs_prop_readonly);
+-EXPORT_SYMBOL(zfs_prop_inheritable);
+-EXPORT_SYMBOL(zfs_prop_encryption_key_param);
+-EXPORT_SYMBOL(zfs_prop_valid_keylocation);
+-EXPORT_SYMBOL(zfs_prop_setonce);
+-EXPORT_SYMBOL(zfs_prop_to_name);
+-EXPORT_SYMBOL(zfs_name_to_prop);
+-EXPORT_SYMBOL(zfs_prop_user);
+-EXPORT_SYMBOL(zfs_prop_userquota);
+-EXPORT_SYMBOL(zfs_prop_index_to_string);
+-EXPORT_SYMBOL(zfs_prop_string_to_index);
+-EXPORT_SYMBOL(zfs_prop_valid_for_type);
+-EXPORT_SYMBOL(zfs_prop_written);
++EXPORT_SYMBOL(zfs_prop_default_string)
++EXPORT_SYMBOL(zfs_prop_default_numeric)
++EXPORT_SYMBOL(zfs_prop_readonly)
++EXPORT_SYMBOL(zfs_prop_inheritable)
++EXPORT_SYMBOL(zfs_prop_encryption_key_param)
++EXPORT_SYMBOL(zfs_prop_valid_keylocation)
++EXPORT_SYMBOL(zfs_prop_setonce)
++EXPORT_SYMBOL(zfs_prop_to_name)
++EXPORT_SYMBOL(zfs_name_to_prop)
++EXPORT_SYMBOL(zfs_prop_user)
++EXPORT_SYMBOL(zfs_prop_userquota)
++EXPORT_SYMBOL(zfs_prop_index_to_string)
++EXPORT_SYMBOL(zfs_prop_string_to_index)
++EXPORT_SYMBOL(zfs_prop_valid_for_type)
++EXPORT_SYMBOL(zfs_prop_written)
+--
+2.37.3
+
diff --git a/pkg/zfs/patch/0009-Avoid-use-of-long-double-function.patch b/pkg/zfs/patch/0008-Avoid-use-of-long-double-function.patch
diff --git a/pkg/zfs/patch/0008-Remove-stray-at-top-level.patch b/pkg/zfs/patch/0008-Remove-stray-at-top-level.patch
@@ -1,421 +0,0 @@
-From 54212b1aebdb3c5ffa7904eed7b9a09490aca1e1 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sat, 21 Jan 2023 17:17:48 -0800
-Subject: [PATCH] Remove stray ';' at top-level
-
----
- module/avl/avl.c | 46 +++----
- module/nvpair/nvpair.c | 240 ++++++++++++++++-----------------
- module/zcommon/zfs_namecheck.c | 20 +--
- module/zcommon/zfs_prop.c | 50 +++----
- 4 files changed, 178 insertions(+), 178 deletions(-)
-
-diff --git a/module/avl/avl.c b/module/avl/avl.c
-index f761a8ae7..18dbe1b99 100644
---- a/module/avl/avl.c
-+++ b/module/avl/avl.c
-@@ -1052,26 +1052,26 @@ module_init(avl_init);
- module_exit(avl_fini);
- #endif
-
--ZFS_MODULE_DESCRIPTION("Generic AVL tree implementation");
--ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR);
--ZFS_MODULE_LICENSE(ZFS_META_LICENSE);
--ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE);
--
--EXPORT_SYMBOL(avl_create);
--EXPORT_SYMBOL(avl_find);
--EXPORT_SYMBOL(avl_insert);
--EXPORT_SYMBOL(avl_insert_here);
--EXPORT_SYMBOL(avl_walk);
--EXPORT_SYMBOL(avl_first);
--EXPORT_SYMBOL(avl_last);
--EXPORT_SYMBOL(avl_nearest);
--EXPORT_SYMBOL(avl_add);
--EXPORT_SYMBOL(avl_swap);
--EXPORT_SYMBOL(avl_is_empty);
--EXPORT_SYMBOL(avl_remove);
--EXPORT_SYMBOL(avl_numnodes);
--EXPORT_SYMBOL(avl_destroy_nodes);
--EXPORT_SYMBOL(avl_destroy);
--EXPORT_SYMBOL(avl_update_lt);
--EXPORT_SYMBOL(avl_update_gt);
--EXPORT_SYMBOL(avl_update);
-+ZFS_MODULE_DESCRIPTION("Generic AVL tree implementation")
-+ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR)
-+ZFS_MODULE_LICENSE(ZFS_META_LICENSE)
-+ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE)
-+
-+EXPORT_SYMBOL(avl_create)
-+EXPORT_SYMBOL(avl_find)
-+EXPORT_SYMBOL(avl_insert)
-+EXPORT_SYMBOL(avl_insert_here)
-+EXPORT_SYMBOL(avl_walk)
-+EXPORT_SYMBOL(avl_first)
-+EXPORT_SYMBOL(avl_last)
-+EXPORT_SYMBOL(avl_nearest)
-+EXPORT_SYMBOL(avl_add)
-+EXPORT_SYMBOL(avl_swap)
-+EXPORT_SYMBOL(avl_is_empty)
-+EXPORT_SYMBOL(avl_remove)
-+EXPORT_SYMBOL(avl_numnodes)
-+EXPORT_SYMBOL(avl_destroy_nodes)
-+EXPORT_SYMBOL(avl_destroy)
-+EXPORT_SYMBOL(avl_update_lt)
-+EXPORT_SYMBOL(avl_update_gt)
-+EXPORT_SYMBOL(avl_update)
-diff --git a/module/nvpair/nvpair.c b/module/nvpair/nvpair.c
-index 9834dedd8..6dfebb0ec 100644
---- a/module/nvpair/nvpair.c
-+++ b/module/nvpair/nvpair.c
-@@ -3256,13 +3256,13 @@ nvs_xdr_nvp_##type(XDR *xdrs, void *ptr, ...) \
- #endif
-
- /* BEGIN CSTYLED */
--NVS_BUILD_XDRPROC_T(char);
--NVS_BUILD_XDRPROC_T(short);
--NVS_BUILD_XDRPROC_T(u_short);
--NVS_BUILD_XDRPROC_T(int);
--NVS_BUILD_XDRPROC_T(u_int);
--NVS_BUILD_XDRPROC_T(longlong_t);
--NVS_BUILD_XDRPROC_T(u_longlong_t);
-+NVS_BUILD_XDRPROC_T(char)
-+NVS_BUILD_XDRPROC_T(short)
-+NVS_BUILD_XDRPROC_T(u_short)
-+NVS_BUILD_XDRPROC_T(int)
-+NVS_BUILD_XDRPROC_T(u_int)
-+NVS_BUILD_XDRPROC_T(longlong_t)
-+NVS_BUILD_XDRPROC_T(u_longlong_t)
- /* END CSTYLED */
-
- /*
-@@ -3672,121 +3672,121 @@ module_init(nvpair_init);
- module_exit(nvpair_fini);
- #endif
-
--ZFS_MODULE_DESCRIPTION("Generic name/value pair implementation");
--ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR);
--ZFS_MODULE_LICENSE(ZFS_META_LICENSE);
--ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE);
-+ZFS_MODULE_DESCRIPTION("Generic name/value pair implementation")
-+ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR)
-+ZFS_MODULE_LICENSE(ZFS_META_LICENSE)
-+ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE)
-
--EXPORT_SYMBOL(nv_alloc_init);
--EXPORT_SYMBOL(nv_alloc_reset);
--EXPORT_SYMBOL(nv_alloc_fini);
-+EXPORT_SYMBOL(nv_alloc_init)
-+EXPORT_SYMBOL(nv_alloc_reset)
-+EXPORT_SYMBOL(nv_alloc_fini)
-
- /* list management */
--EXPORT_SYMBOL(nvlist_alloc);
--EXPORT_SYMBOL(nvlist_free);
--EXPORT_SYMBOL(nvlist_size);
--EXPORT_SYMBOL(nvlist_pack);
--EXPORT_SYMBOL(nvlist_unpack);
--EXPORT_SYMBOL(nvlist_dup);
--EXPORT_SYMBOL(nvlist_merge);
--
--EXPORT_SYMBOL(nvlist_xalloc);
--EXPORT_SYMBOL(nvlist_xpack);
--EXPORT_SYMBOL(nvlist_xunpack);
--EXPORT_SYMBOL(nvlist_xdup);
--EXPORT_SYMBOL(nvlist_lookup_nv_alloc);
--
--EXPORT_SYMBOL(nvlist_add_nvpair);
--EXPORT_SYMBOL(nvlist_add_boolean);
--EXPORT_SYMBOL(nvlist_add_boolean_value);
--EXPORT_SYMBOL(nvlist_add_byte);
--EXPORT_SYMBOL(nvlist_add_int8);
--EXPORT_SYMBOL(nvlist_add_uint8);
--EXPORT_SYMBOL(nvlist_add_int16);
--EXPORT_SYMBOL(nvlist_add_uint16);
--EXPORT_SYMBOL(nvlist_add_int32);
--EXPORT_SYMBOL(nvlist_add_uint32);
--EXPORT_SYMBOL(nvlist_add_int64);
--EXPORT_SYMBOL(nvlist_add_uint64);
--EXPORT_SYMBOL(nvlist_add_string);
--EXPORT_SYMBOL(nvlist_add_nvlist);
--EXPORT_SYMBOL(nvlist_add_boolean_array);
--EXPORT_SYMBOL(nvlist_add_byte_array);
--EXPORT_SYMBOL(nvlist_add_int8_array);
--EXPORT_SYMBOL(nvlist_add_uint8_array);
--EXPORT_SYMBOL(nvlist_add_int16_array);
--EXPORT_SYMBOL(nvlist_add_uint16_array);
--EXPORT_SYMBOL(nvlist_add_int32_array);
--EXPORT_SYMBOL(nvlist_add_uint32_array);
--EXPORT_SYMBOL(nvlist_add_int64_array);
--EXPORT_SYMBOL(nvlist_add_uint64_array);
--EXPORT_SYMBOL(nvlist_add_string_array);
--EXPORT_SYMBOL(nvlist_add_nvlist_array);
--EXPORT_SYMBOL(nvlist_next_nvpair);
--EXPORT_SYMBOL(nvlist_prev_nvpair);
--EXPORT_SYMBOL(nvlist_empty);
--EXPORT_SYMBOL(nvlist_add_hrtime);
--
--EXPORT_SYMBOL(nvlist_remove);
--EXPORT_SYMBOL(nvlist_remove_nvpair);
--EXPORT_SYMBOL(nvlist_remove_all);
--
--EXPORT_SYMBOL(nvlist_lookup_boolean);
--EXPORT_SYMBOL(nvlist_lookup_boolean_value);
--EXPORT_SYMBOL(nvlist_lookup_byte);
--EXPORT_SYMBOL(nvlist_lookup_int8);
--EXPORT_SYMBOL(nvlist_lookup_uint8);
--EXPORT_SYMBOL(nvlist_lookup_int16);
--EXPORT_SYMBOL(nvlist_lookup_uint16);
--EXPORT_SYMBOL(nvlist_lookup_int32);
--EXPORT_SYMBOL(nvlist_lookup_uint32);
--EXPORT_SYMBOL(nvlist_lookup_int64);
--EXPORT_SYMBOL(nvlist_lookup_uint64);
--EXPORT_SYMBOL(nvlist_lookup_string);
--EXPORT_SYMBOL(nvlist_lookup_nvlist);
--EXPORT_SYMBOL(nvlist_lookup_boolean_array);
--EXPORT_SYMBOL(nvlist_lookup_byte_array);
--EXPORT_SYMBOL(nvlist_lookup_int8_array);
--EXPORT_SYMBOL(nvlist_lookup_uint8_array);
--EXPORT_SYMBOL(nvlist_lookup_int16_array);
--EXPORT_SYMBOL(nvlist_lookup_uint16_array);
--EXPORT_SYMBOL(nvlist_lookup_int32_array);
--EXPORT_SYMBOL(nvlist_lookup_uint32_array);
--EXPORT_SYMBOL(nvlist_lookup_int64_array);
--EXPORT_SYMBOL(nvlist_lookup_uint64_array);
--EXPORT_SYMBOL(nvlist_lookup_string_array);
--EXPORT_SYMBOL(nvlist_lookup_nvlist_array);
--EXPORT_SYMBOL(nvlist_lookup_hrtime);
--EXPORT_SYMBOL(nvlist_lookup_pairs);
--
--EXPORT_SYMBOL(nvlist_lookup_nvpair);
--EXPORT_SYMBOL(nvlist_exists);
-+EXPORT_SYMBOL(nvlist_alloc)
-+EXPORT_SYMBOL(nvlist_free)
-+EXPORT_SYMBOL(nvlist_size)
-+EXPORT_SYMBOL(nvlist_pack)
-+EXPORT_SYMBOL(nvlist_unpack)
-+EXPORT_SYMBOL(nvlist_dup)
-+EXPORT_SYMBOL(nvlist_merge)
-+
-+EXPORT_SYMBOL(nvlist_xalloc)
-+EXPORT_SYMBOL(nvlist_xpack)
-+EXPORT_SYMBOL(nvlist_xunpack)
-+EXPORT_SYMBOL(nvlist_xdup)
-+EXPORT_SYMBOL(nvlist_lookup_nv_alloc)
-+
-+EXPORT_SYMBOL(nvlist_add_nvpair)
-+EXPORT_SYMBOL(nvlist_add_boolean)
-+EXPORT_SYMBOL(nvlist_add_boolean_value)
-+EXPORT_SYMBOL(nvlist_add_byte)
-+EXPORT_SYMBOL(nvlist_add_int8)
-+EXPORT_SYMBOL(nvlist_add_uint8)
-+EXPORT_SYMBOL(nvlist_add_int16)
-+EXPORT_SYMBOL(nvlist_add_uint16)
-+EXPORT_SYMBOL(nvlist_add_int32)
-+EXPORT_SYMBOL(nvlist_add_uint32)
-+EXPORT_SYMBOL(nvlist_add_int64)
-+EXPORT_SYMBOL(nvlist_add_uint64)
-+EXPORT_SYMBOL(nvlist_add_string)
-+EXPORT_SYMBOL(nvlist_add_nvlist)
-+EXPORT_SYMBOL(nvlist_add_boolean_array)
-+EXPORT_SYMBOL(nvlist_add_byte_array)
-+EXPORT_SYMBOL(nvlist_add_int8_array)
-+EXPORT_SYMBOL(nvlist_add_uint8_array)
-+EXPORT_SYMBOL(nvlist_add_int16_array)
-+EXPORT_SYMBOL(nvlist_add_uint16_array)
-+EXPORT_SYMBOL(nvlist_add_int32_array)
-+EXPORT_SYMBOL(nvlist_add_uint32_array)
-+EXPORT_SYMBOL(nvlist_add_int64_array)
-+EXPORT_SYMBOL(nvlist_add_uint64_array)
-+EXPORT_SYMBOL(nvlist_add_string_array)
-+EXPORT_SYMBOL(nvlist_add_nvlist_array)
-+EXPORT_SYMBOL(nvlist_next_nvpair)
-+EXPORT_SYMBOL(nvlist_prev_nvpair)
-+EXPORT_SYMBOL(nvlist_empty)
-+EXPORT_SYMBOL(nvlist_add_hrtime)
-+
-+EXPORT_SYMBOL(nvlist_remove)
-+EXPORT_SYMBOL(nvlist_remove_nvpair)
-+EXPORT_SYMBOL(nvlist_remove_all)
-+
-+EXPORT_SYMBOL(nvlist_lookup_boolean)
-+EXPORT_SYMBOL(nvlist_lookup_boolean_value)
-+EXPORT_SYMBOL(nvlist_lookup_byte)
-+EXPORT_SYMBOL(nvlist_lookup_int8)
-+EXPORT_SYMBOL(nvlist_lookup_uint8)
-+EXPORT_SYMBOL(nvlist_lookup_int16)
-+EXPORT_SYMBOL(nvlist_lookup_uint16)
-+EXPORT_SYMBOL(nvlist_lookup_int32)
-+EXPORT_SYMBOL(nvlist_lookup_uint32)
-+EXPORT_SYMBOL(nvlist_lookup_int64)
-+EXPORT_SYMBOL(nvlist_lookup_uint64)
-+EXPORT_SYMBOL(nvlist_lookup_string)
-+EXPORT_SYMBOL(nvlist_lookup_nvlist)
-+EXPORT_SYMBOL(nvlist_lookup_boolean_array)
-+EXPORT_SYMBOL(nvlist_lookup_byte_array)
-+EXPORT_SYMBOL(nvlist_lookup_int8_array)
-+EXPORT_SYMBOL(nvlist_lookup_uint8_array)
-+EXPORT_SYMBOL(nvlist_lookup_int16_array)
-+EXPORT_SYMBOL(nvlist_lookup_uint16_array)
-+EXPORT_SYMBOL(nvlist_lookup_int32_array)
-+EXPORT_SYMBOL(nvlist_lookup_uint32_array)
-+EXPORT_SYMBOL(nvlist_lookup_int64_array)
-+EXPORT_SYMBOL(nvlist_lookup_uint64_array)
-+EXPORT_SYMBOL(nvlist_lookup_string_array)
-+EXPORT_SYMBOL(nvlist_lookup_nvlist_array)
-+EXPORT_SYMBOL(nvlist_lookup_hrtime)
-+EXPORT_SYMBOL(nvlist_lookup_pairs)
-+
-+EXPORT_SYMBOL(nvlist_lookup_nvpair)
-+EXPORT_SYMBOL(nvlist_exists)
-
- /* processing nvpair */
--EXPORT_SYMBOL(nvpair_name);
--EXPORT_SYMBOL(nvpair_type);
--EXPORT_SYMBOL(nvpair_value_boolean_value);
--EXPORT_SYMBOL(nvpair_value_byte);
--EXPORT_SYMBOL(nvpair_value_int8);
--EXPORT_SYMBOL(nvpair_value_uint8);
--EXPORT_SYMBOL(nvpair_value_int16);
--EXPORT_SYMBOL(nvpair_value_uint16);
--EXPORT_SYMBOL(nvpair_value_int32);
--EXPORT_SYMBOL(nvpair_value_uint32);
--EXPORT_SYMBOL(nvpair_value_int64);
--EXPORT_SYMBOL(nvpair_value_uint64);
--EXPORT_SYMBOL(nvpair_value_string);
--EXPORT_SYMBOL(nvpair_value_nvlist);
--EXPORT_SYMBOL(nvpair_value_boolean_array);
--EXPORT_SYMBOL(nvpair_value_byte_array);
--EXPORT_SYMBOL(nvpair_value_int8_array);
--EXPORT_SYMBOL(nvpair_value_uint8_array);
--EXPORT_SYMBOL(nvpair_value_int16_array);
--EXPORT_SYMBOL(nvpair_value_uint16_array);
--EXPORT_SYMBOL(nvpair_value_int32_array);
--EXPORT_SYMBOL(nvpair_value_uint32_array);
--EXPORT_SYMBOL(nvpair_value_int64_array);
--EXPORT_SYMBOL(nvpair_value_uint64_array);
--EXPORT_SYMBOL(nvpair_value_string_array);
--EXPORT_SYMBOL(nvpair_value_nvlist_array);
--EXPORT_SYMBOL(nvpair_value_hrtime);
-+EXPORT_SYMBOL(nvpair_name)
-+EXPORT_SYMBOL(nvpair_type)
-+EXPORT_SYMBOL(nvpair_value_boolean_value)
-+EXPORT_SYMBOL(nvpair_value_byte)
-+EXPORT_SYMBOL(nvpair_value_int8)
-+EXPORT_SYMBOL(nvpair_value_uint8)
-+EXPORT_SYMBOL(nvpair_value_int16)
-+EXPORT_SYMBOL(nvpair_value_uint16)
-+EXPORT_SYMBOL(nvpair_value_int32)
-+EXPORT_SYMBOL(nvpair_value_uint32)
-+EXPORT_SYMBOL(nvpair_value_int64)
-+EXPORT_SYMBOL(nvpair_value_uint64)
-+EXPORT_SYMBOL(nvpair_value_string)
-+EXPORT_SYMBOL(nvpair_value_nvlist)
-+EXPORT_SYMBOL(nvpair_value_boolean_array)
-+EXPORT_SYMBOL(nvpair_value_byte_array)
-+EXPORT_SYMBOL(nvpair_value_int8_array)
-+EXPORT_SYMBOL(nvpair_value_uint8_array)
-+EXPORT_SYMBOL(nvpair_value_int16_array)
-+EXPORT_SYMBOL(nvpair_value_uint16_array)
-+EXPORT_SYMBOL(nvpair_value_int32_array)
-+EXPORT_SYMBOL(nvpair_value_uint32_array)
-+EXPORT_SYMBOL(nvpair_value_int64_array)
-+EXPORT_SYMBOL(nvpair_value_uint64_array)
-+EXPORT_SYMBOL(nvpair_value_string_array)
-+EXPORT_SYMBOL(nvpair_value_nvlist_array)
-+EXPORT_SYMBOL(nvpair_value_hrtime)
-diff --git a/module/zcommon/zfs_namecheck.c b/module/zcommon/zfs_namecheck.c
-index 7ecce451b..5f6b8a3b9 100644
---- a/module/zcommon/zfs_namecheck.c
-+++ b/module/zcommon/zfs_namecheck.c
-@@ -453,15 +453,15 @@ pool_namecheck(const char *pool, namecheck_err_t *why, char *what)
- return (0);
- }
-
--EXPORT_SYMBOL(entity_namecheck);
--EXPORT_SYMBOL(pool_namecheck);
--EXPORT_SYMBOL(dataset_namecheck);
--EXPORT_SYMBOL(bookmark_namecheck);
--EXPORT_SYMBOL(snapshot_namecheck);
--EXPORT_SYMBOL(zfs_component_namecheck);
--EXPORT_SYMBOL(dataset_nestcheck);
--EXPORT_SYMBOL(get_dataset_depth);
--EXPORT_SYMBOL(zfs_max_dataset_nesting);
-+EXPORT_SYMBOL(entity_namecheck)
-+EXPORT_SYMBOL(pool_namecheck)
-+EXPORT_SYMBOL(dataset_namecheck)
-+EXPORT_SYMBOL(bookmark_namecheck)
-+EXPORT_SYMBOL(snapshot_namecheck)
-+EXPORT_SYMBOL(zfs_component_namecheck)
-+EXPORT_SYMBOL(dataset_nestcheck)
-+EXPORT_SYMBOL(get_dataset_depth)
-+EXPORT_SYMBOL(zfs_max_dataset_nesting)
-
- ZFS_MODULE_PARAM(zfs, zfs_, max_dataset_nesting, INT, ZMOD_RW,
-- "Limit to the amount of nesting a path can have. Defaults to 50.");
-+ "Limit to the amount of nesting a path can have. Defaults to 50.")
-diff --git a/module/zcommon/zfs_prop.c b/module/zcommon/zfs_prop.c
-index b4e8fcf1f..9de54aa44 100644
---- a/module/zcommon/zfs_prop.c
-+++ b/module/zcommon/zfs_prop.c
-@@ -1054,32 +1054,32 @@ module_exit(zcommon_fini);
-
- #endif
-
--ZFS_MODULE_DESCRIPTION("Generic ZFS support");
--ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR);
--ZFS_MODULE_LICENSE(ZFS_META_LICENSE);
--ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE);
-+ZFS_MODULE_DESCRIPTION("Generic ZFS support")
-+ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR)
-+ZFS_MODULE_LICENSE(ZFS_META_LICENSE)
-+ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE)
-
- /* zfs dataset property functions */
--EXPORT_SYMBOL(zfs_userquota_prop_prefixes);
--EXPORT_SYMBOL(zfs_prop_init);
--EXPORT_SYMBOL(zfs_prop_get_type);
--EXPORT_SYMBOL(zfs_prop_get_table);
--EXPORT_SYMBOL(zfs_prop_delegatable);
--EXPORT_SYMBOL(zfs_prop_visible);
-+EXPORT_SYMBOL(zfs_userquota_prop_prefixes)
-+EXPORT_SYMBOL(zfs_prop_init)
-+EXPORT_SYMBOL(zfs_prop_get_type)
-+EXPORT_SYMBOL(zfs_prop_get_table)
-+EXPORT_SYMBOL(zfs_prop_delegatable)
-+EXPORT_SYMBOL(zfs_prop_visible)
-
- /* Dataset property functions shared between libzfs and kernel. */
--EXPORT_SYMBOL(zfs_prop_default_string);
--EXPORT_SYMBOL(zfs_prop_default_numeric);
--EXPORT_SYMBOL(zfs_prop_readonly);
--EXPORT_SYMBOL(zfs_prop_inheritable);
--EXPORT_SYMBOL(zfs_prop_encryption_key_param);
--EXPORT_SYMBOL(zfs_prop_valid_keylocation);
--EXPORT_SYMBOL(zfs_prop_setonce);
--EXPORT_SYMBOL(zfs_prop_to_name);
--EXPORT_SYMBOL(zfs_name_to_prop);
--EXPORT_SYMBOL(zfs_prop_user);
--EXPORT_SYMBOL(zfs_prop_userquota);
--EXPORT_SYMBOL(zfs_prop_index_to_string);
--EXPORT_SYMBOL(zfs_prop_string_to_index);
--EXPORT_SYMBOL(zfs_prop_valid_for_type);
--EXPORT_SYMBOL(zfs_prop_written);
-+EXPORT_SYMBOL(zfs_prop_default_string)
-+EXPORT_SYMBOL(zfs_prop_default_numeric)
-+EXPORT_SYMBOL(zfs_prop_readonly)
-+EXPORT_SYMBOL(zfs_prop_inheritable)
-+EXPORT_SYMBOL(zfs_prop_encryption_key_param)
-+EXPORT_SYMBOL(zfs_prop_valid_keylocation)
-+EXPORT_SYMBOL(zfs_prop_setonce)
-+EXPORT_SYMBOL(zfs_prop_to_name)
-+EXPORT_SYMBOL(zfs_name_to_prop)
-+EXPORT_SYMBOL(zfs_prop_user)
-+EXPORT_SYMBOL(zfs_prop_userquota)
-+EXPORT_SYMBOL(zfs_prop_index_to_string)
-+EXPORT_SYMBOL(zfs_prop_string_to_index)
-+EXPORT_SYMBOL(zfs_prop_valid_for_type)
-+EXPORT_SYMBOL(zfs_prop_written)
---
-2.37.3
-
diff --git a/pkg/zfs/patch/0009-Avoid-unnecessary-VLA.patch b/pkg/zfs/patch/0009-Avoid-unnecessary-VLA.patch
@@ -0,0 +1,54 @@
+From fac76bb5a8d1b03db9aa68c3bd72999ce76b8ca5 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 21 Jan 2023 17:41:15 -0800
+Subject: [PATCH] Avoid unnecessary VLA
+
+---
+ cmd/zpool/zpool_vdev.c | 17 ++++++++---------
+ 1 file changed, 8 insertions(+), 9 deletions(-)
+
+diff --git a/cmd/zpool/zpool_vdev.c b/cmd/zpool/zpool_vdev.c
+index fbd4b81df..a45ab7af5 100644
+--- a/cmd/zpool/zpool_vdev.c
++++ b/cmd/zpool/zpool_vdev.c
+@@ -910,8 +910,7 @@ check_replication(nvlist_t *config, nvlist_t *newroot)
+ static int
+ zero_label(const char *path)
+ {
+- const int size = 4096;
+- char buf[size];
++ char buf[4096];
+ int err, fd;
+
+ if ((fd = open(path, O_WRONLY|O_EXCL)) < 0) {
+@@ -920,20 +919,20 @@ zero_label(const char *path)
+ return (-1);
+ }
+
+- memset(buf, 0, size);
+- err = write(fd, buf, size);
++ memset(buf, 0, sizeof (buf));
++ err = write(fd, buf, sizeof (buf));
+ (void) fdatasync(fd);
+ (void) close(fd);
+
+ if (err == -1) {
+- (void) fprintf(stderr, gettext("cannot zero first %d bytes "
+- "of '%s': %s\n"), size, path, strerror(errno));
++ (void) fprintf(stderr, gettext("cannot zero first %zu bytes "
++ "of '%s': %s\n"), sizeof (buf), path, strerror(errno));
+ return (-1);
+ }
+
+- if (err != size) {
+- (void) fprintf(stderr, gettext("could only zero %d/%d bytes "
+- "of '%s'\n"), err, size, path);
++ if (err != sizeof (buf)) {
++ (void) fprintf(stderr, gettext("could only zero %d/%zu bytes "
++ "of '%s'\n"), err, sizeof (buf), path);
+ return (-1);
+ }
+
+--
+2.37.3
+
diff --git a/pkg/zfs/patch/0010-Avoid-arithmetic-on-void-pointer.patch b/pkg/zfs/patch/0010-Avoid-arithmetic-on-void-pointer.patch
@@ -0,0 +1,25 @@
+From dad6fa581122eaf3eb5c65839a3fd294887ba139 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 21 Jan 2023 17:52:40 -0800
+Subject: [PATCH] Avoid arithmetic on void pointer
+
+---
+ module/zcommon/zfs_fletcher.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/module/zcommon/zfs_fletcher.c b/module/zcommon/zfs_fletcher.c
+index 619ddef02..a99865b2a 100644
+--- a/module/zcommon/zfs_fletcher.c
++++ b/module/zcommon/zfs_fletcher.c
+@@ -581,7 +581,7 @@ fletcher_4_incremental_impl(boolean_t native, const void *buf, uint64_t size,
+ fletcher_4_incremental_combine(zcp, len, &nzc);
+
+ size -= len;
+- buf += len;
++ buf = (char *)buf + len;
+ }
+ }
+
+--
+2.37.3
+
diff --git a/pkg/zfs/patch/0010-Avoid-unnecessary-VLA.patch b/pkg/zfs/patch/0010-Avoid-unnecessary-VLA.patch
@@ -1,54 +0,0 @@
-From 2218ade9b12bc42f61d96a4613328a6f627805a1 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sat, 21 Jan 2023 17:41:15 -0800
-Subject: [PATCH] Avoid unnecessary VLA
-
----
- cmd/zpool/zpool_vdev.c | 17 ++++++++---------
- 1 file changed, 8 insertions(+), 9 deletions(-)
-
-diff --git a/cmd/zpool/zpool_vdev.c b/cmd/zpool/zpool_vdev.c
-index 3d83da641..521086366 100644
---- a/cmd/zpool/zpool_vdev.c
-+++ b/cmd/zpool/zpool_vdev.c
-@@ -891,8 +891,7 @@ check_replication(nvlist_t *config, nvlist_t *newroot)
- static int
- zero_label(char *path)
- {
-- const int size = 4096;
-- char buf[size];
-+ char buf[4096];
- int err, fd;
-
- if ((fd = open(path, O_WRONLY|O_EXCL)) < 0) {
-@@ -901,20 +900,20 @@ zero_label(char *path)
- return (-1);
- }
-
-- memset(buf, 0, size);
-- err = write(fd, buf, size);
-+ memset(buf, 0, sizeof (buf));
-+ err = write(fd, buf, sizeof (buf));
- (void) fdatasync(fd);
- (void) close(fd);
-
- if (err == -1) {
-- (void) fprintf(stderr, gettext("cannot zero first %d bytes "
-- "of '%s': %s\n"), size, path, strerror(errno));
-+ (void) fprintf(stderr, gettext("cannot zero first %zu bytes "
-+ "of '%s': %s\n"), sizeof (buf), path, strerror(errno));
- return (-1);
- }
-
-- if (err != size) {
-- (void) fprintf(stderr, gettext("could only zero %d/%d bytes "
-- "of '%s'\n"), err, size, path);
-+ if (err != sizeof (buf)) {
-+ (void) fprintf(stderr, gettext("could only zero %d/%zu bytes "
-+ "of '%s'\n"), err, sizeof (buf), path);
- return (-1);
- }
-
---
-2.37.3
-
diff --git a/pkg/zfs/patch/0011-Avoid-arithmetic-on-void-pointer.patch b/pkg/zfs/patch/0011-Avoid-arithmetic-on-void-pointer.patch
@@ -1,25 +0,0 @@
-From 8a2689c718e4fdf96a5b73e4095866ddf4826135 Mon Sep 17 00:00:00 2001
-From: Michael Forney <mforney@mforney.org>
-Date: Sat, 21 Jan 2023 17:52:40 -0800
-Subject: [PATCH] Avoid arithmetic on void pointer
-
----
- module/zcommon/zfs_fletcher.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/module/zcommon/zfs_fletcher.c b/module/zcommon/zfs_fletcher.c
-index 7a9de4a43..2faee46fe 100644
---- a/module/zcommon/zfs_fletcher.c
-+++ b/module/zcommon/zfs_fletcher.c
-@@ -569,7 +569,7 @@ fletcher_4_incremental_impl(boolean_t native, const void *buf, uint64_t size,
- fletcher_4_incremental_combine(zcp, len, &nzc);
-
- size -= len;
-- buf += len;
-+ buf = (char *)buf + len;
- }
- }
-
---
-2.37.3
-
diff --git a/pkg/zfs/patch/0011-zstream-Disable-recompress-and-decompress.patch b/pkg/zfs/patch/0011-zstream-Disable-recompress-and-decompress.patch
@@ -0,0 +1,39 @@
+From 35672849425882c7a8c24a085c4613beb62d1996 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Fri, 22 Mar 2024 19:18:59 -0700
+Subject: [PATCH] zstream: Disable recompress and decompress
+
+These require building a lot more sources, so disable them for now.
+---
+ cmd/zstream/zstream.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/cmd/zstream/zstream.c b/cmd/zstream/zstream.c
+index b1509c1f2..a228f45fa 100644
+--- a/cmd/zstream/zstream.c
++++ b/cmd/zstream/zstream.c
+@@ -40,10 +40,6 @@ zstream_usage(void)
+ "\tzstream dump [-vCd] FILE\n"
+ "\t... | zstream dump [-vCd]\n"
+ "\n"
+- "\tzstream decompress [-v] [OBJECT,OFFSET[,TYPE]] ...\n"
+- "\n"
+- "\tzstream recompress [ -l level] TYPE\n"
+- "\n"
+ "\tzstream token resume_token\n"
+ "\n"
+ "\tzstream redup [-v] FILE | ...\n");
+@@ -65,10 +61,6 @@ main(int argc, char *argv[])
+
+ if (strcmp(subcommand, "dump") == 0) {
+ return (zstream_do_dump(argc - 1, argv + 1));
+- } else if (strcmp(subcommand, "decompress") == 0) {
+- return (zstream_do_decompress(argc - 1, argv + 1));
+- } else if (strcmp(subcommand, "recompress") == 0) {
+- return (zstream_do_recompress(argc - 1, argv + 1));
+ } else if (strcmp(subcommand, "token") == 0) {
+ return (zstream_do_token(argc - 1, argv + 1));
+ } else if (strcmp(subcommand, "redup") == 0) {
+--
+2.37.3
+
diff --git a/pkg/zfs/sha256 b/pkg/zfs/sha256
@@ -1 +1 @@
-6462e63e185de6ff10c64ffa6ed773201a082f9dd13e603d7e8136fcb4aca71b zfs-2.1.7.tar.gz
+30a512f34ec5c841b8b2b32cc9c1a03fd49391b26c9164d3fb30573fb5d81ac3 zfs-2.2.3.tar.gz
diff --git a/pkg/zfs/url b/pkg/zfs/url
@@ -1 +1 @@
-url = "https://github.com/openzfs/zfs/releases/download/zfs-2.1.7/zfs-2.1.7.tar.gz"
+url = "https://github.com/openzfs/zfs/releases/download/zfs-2.2.3/zfs-2.2.3.tar.gz"
diff --git a/pkg/zfs/ver b/pkg/zfs/ver
@@ -1 +1 @@
-2.1.7 r0
+2.2.3 r0