git: 25c6e6ed725d - stable/15 - zfs: merge openzfs/zfs@83020cf82 (zfs-2.4-release) into stable/15

From: Martin Matuska <mm_at_FreeBSD.org>
Date: Wed, 17 Jun 2026 07:21:06 UTC
The branch stable/15 has been updated by mm:

URL: https://cgit.FreeBSD.org/src/commit/?id=25c6e6ed725d817764d32f97b589e3447906f783

commit 25c6e6ed725d817764d32f97b589e3447906f783
Merge: 55407c3540a3 83020cf8259d
Author:     Martin Matuska <mm@FreeBSD.org>
AuthorDate: 2026-06-17 06:51:14 +0000
Commit:     Martin Matuska <mm@FreeBSD.org>
CommitDate: 2026-06-17 07:19:45 +0000

    zfs: merge openzfs/zfs@83020cf82 (zfs-2.4-release) into stable/15
    
    OpenZFS 2.4.3
    
    Notable upstream pull request merges:
     #18212 b72c843b4 Simplify dnode_level_is_l2cacheable()
     #18214 97117686d Remove parent ZIO from dbuf_prefetch()
     #18277 50697dc93 Fix log vdev removal issues
     #18315 1821ca2db ZVOL: Add encryption key check for block cloning
     #18390 6d336fa86 abd: Fix stats asymmetry in case of Direct I/O
     #18430 836ddbad0 Fix "panic: cache_vop_rename: lingering negative entry"
     #18448 8e964b36b key lookup failure should always return EACCES
     #18477 715f60561 Fix off-by-one in PREVIOUSLY_REDACTED handler that drops
                      last block
     #18494 0bb0c7074 zdb: detect BRT and DDT leaks during block traversal
     #18497 8e0b943f6 zfs: annotate nested dd_lock in reservation sync
                      accounting
     #18499 07c20404a zarcstat: detect attached L2ARC device with no data
     #18503 c59e15fab sa: fix sa_add_projid lock ordering
     #18520 b60016442 Fix double free for blocks cloned after DDT prune
     #18525 db125c7dc Fix aarch64 build failure by removing earlyclobber
     #18533 137626695 arc: export additional required symbols
     #18550 215fc0982 zap_impl: use flex array field for mzap_phys_t.mz_chunks
     #18596 b81a6ff02 FreeBSD: Make it possible to build openzfs.ko with
                      sanitizers
     #18599 8dd2e0096 enforce exact decompressed length for lz4, gzip, and zstd
     #18603 9afc7a2d8 dsl_scan: close errorscrub cursor on pause
     #18604 63a0ff6cd nvpair: Check for un-terminated strings in packed nvlist
     #18606 745edef01 When reading a vdev label skip libzfs_core_init()
     #18613 e548a7145 sharenfs: Check for invalid characters
     #18615 738791027 Fix the integer type in zfs_ioc_userspace_many()
     #18617 38cd6adcb Extend dataset zfs_ioc_set_prop() secpolicy
     #18623 06d8cfedb Add additional verification of size fields and strings
    
    Obtained from:  OpenZFS
    OpenZFS commit: 83020cf8259d057d4cc9102010c05f07ffdfc136
    OpenZFS tag:    zfs-2.4.3

 sys/contrib/openzfs/.github/workflows/README.md    | 129 ++++++++++------
 .../openzfs/.github/workflows/checkstyle.yaml      |   2 +-
 sys/contrib/openzfs/.github/workflows/codeql.yml   |   8 +-
 .../.github/workflows/scripts/generate-ci-type.py  |   1 +
 .../.github/workflows/scripts/qemu-1-setup.sh      |   2 +
 .../.github/workflows/scripts/qemu-2-start.sh      |  53 ++++---
 .../.github/workflows/scripts/qemu-3-deps-vm.sh    |  38 ++++-
 .../.github/workflows/scripts/qemu-3-deps.sh       |  18 ++-
 .../.github/workflows/scripts/qemu-4-build-vm.sh   |  34 +++-
 .../workflows/scripts/qemu-6-lustre-tests-vm.sh    |   8 +-
 .../.github/workflows/scripts/qemu-6-tests.sh      |   8 +
 sys/contrib/openzfs/.github/workflows/smatch.yml   |   9 ++
 sys/contrib/openzfs/.github/workflows/zfs-arm.yml  |  51 +++++-
 .../.github/workflows/zfs-qemu-packages.yml        |  14 +-
 sys/contrib/openzfs/.github/workflows/zfs-qemu.yml |  28 ++--
 sys/contrib/openzfs/.github/workflows/zloop.yml    |   8 +
 sys/contrib/openzfs/META                           |   2 +-
 sys/contrib/openzfs/README.md                      |   4 +-
 sys/contrib/openzfs/cmd/zarcstat.in                |   6 +-
 sys/contrib/openzfs/cmd/zarcsummary                |   5 +-
 sys/contrib/openzfs/cmd/zdb/zdb.c                  | 165 ++++++++++++++------
 sys/contrib/openzfs/config/kernel-fs-parse.m4      |  34 ++++
 sys/contrib/openzfs/config/kernel.m4               | 116 +++++++++++++-
 sys/contrib/openzfs/config/zfs-build.m4            |  12 ++
 sys/contrib/openzfs/contrib/debian/not-installed   |   1 -
 .../openzfs/contrib/pam_zfs_key/pam_zfs_key.c      |  25 ++-
 sys/contrib/openzfs/copy-builtin                   |  11 ++
 sys/contrib/openzfs/etc/Makefile.am                |   6 -
 sys/contrib/openzfs/etc/sudoers.d/zfs              |   9 --
 .../openzfs/include/os/linux/spl/sys/rwlock.h      | 132 ++++++++++++----
 sys/contrib/openzfs/include/sys/arc_impl.h         |   2 +
 sys/contrib/openzfs/include/sys/zap_impl.h         |   3 +-
 sys/contrib/openzfs/include/sys/zio_impl.h         |  13 +-
 sys/contrib/openzfs/lib/libshare/libshare.c        |   8 +
 sys/contrib/openzfs/lib/libzfs/libzfs_changelist.c |  15 +-
 sys/contrib/openzfs/man/man8/zpool-events.8        |  10 +-
 sys/contrib/openzfs/man/man8/zpool-iostat.8        |   5 +-
 sys/contrib/openzfs/module/Kbuild.in               |  11 +-
 sys/contrib/openzfs/module/Makefile.bsd            |   6 +
 sys/contrib/openzfs/module/nvpair/nvpair.c         |  49 ++++--
 .../openzfs/module/os/freebsd/zfs/zfs_vnops_os.c   |   2 +-
 sys/contrib/openzfs/module/os/linux/spl/spl-kmem.c |   6 +
 .../openzfs/module/os/linux/zfs/zfs_ctldir.c       |  19 ++-
 .../openzfs/module/os/linux/zfs/zfs_vfsops.c       |  50 ++++--
 .../openzfs/module/os/linux/zfs/zfs_vnops_os.c     |  38 ++++-
 sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c |  16 +-
 .../openzfs/module/os/linux/zfs/zpl_super.c        |  63 ++++++--
 sys/contrib/openzfs/module/zcommon/zfs_valstr.c    |   2 +-
 sys/contrib/openzfs/module/zfs/abd.c               |   3 +-
 sys/contrib/openzfs/module/zfs/arc.c               |   5 +-
 sys/contrib/openzfs/module/zfs/dbuf.c              |  20 +--
 sys/contrib/openzfs/module/zfs/dmu_recv.c          |  44 ++++--
 sys/contrib/openzfs/module/zfs/dmu_send.c          |   2 +-
 sys/contrib/openzfs/module/zfs/dsl_crypt.c         |  53 ++-----
 sys/contrib/openzfs/module/zfs/dsl_dir.c           |  64 ++++++--
 sys/contrib/openzfs/module/zfs/dsl_scan.c          |   1 +
 sys/contrib/openzfs/module/zfs/gzip.c              |   8 +-
 sys/contrib/openzfs/module/zfs/lz4_zfs.c           |  15 +-
 sys/contrib/openzfs/module/zfs/sa.c                |   4 +-
 sys/contrib/openzfs/module/zfs/vdev.c              |   3 +-
 sys/contrib/openzfs/module/zfs/vdev_label.c        |   1 +
 .../zfs/vdev_raidz_math_aarch64_neon_common.h      |  18 +--
 sys/contrib/openzfs/module/zfs/vdev_removal.c      |   1 -
 sys/contrib/openzfs/module/zfs/zfs_ioctl.c         |  34 +++-
 sys/contrib/openzfs/module/zfs/zfs_quota.c         |   8 +-
 sys/contrib/openzfs/module/zfs/zil.c               |  22 ++-
 sys/contrib/openzfs/module/zfs/zio.c               |  23 ++-
 sys/contrib/openzfs/module/zfs/zvol.c              |  16 ++
 sys/contrib/openzfs/module/zstd/zfs_zstd.c         |   9 ++
 sys/contrib/openzfs/rpm/generic/zfs.spec.in        |   1 -
 sys/contrib/openzfs/tests/runfiles/common.run      |  13 +-
 .../tests/zfs-tests/cmd/libzfs_input_check.c       | 172 ++++++++++++++++++++-
 .../openzfs/tests/zfs-tests/tests/Makefile.am      |   3 +
 .../bclone/bclone_crossfs_corner_cases.ksh         |   3 +
 .../functional/bclone/bclone_crossfs_data.ksh      |   3 +
 .../bclone/bclone_samefs_corner_cases.ksh          |   3 +
 .../tests/functional/bclone/bclone_samefs_data.ksh |   3 +
 .../block_cloning_after_device_removal.ksh         |   4 +
 .../block_cloning_lwb_buffer_overflow.ksh          |   3 +
 .../block_cloning/block_cloning_replay.ksh         |   3 +
 .../block_cloning_replay_encrypted.ksh             |   3 +
 .../zpool_import/zpool_import_parallel_pos.ksh     |   4 +-
 .../tests/functional/dedup/dedup_bclone_pruned.ksh | 152 ++++++++++++++++++
 .../tests/functional/dedup/dedup_fdt_create.ksh    |   2 +
 .../tests/functional/dedup/dedup_fdt_import.ksh    |   2 +
 .../tests/functional/dedup/dedup_fdt_pacing.ksh    |   2 +
 .../tests/functional/dedup/dedup_legacy_create.ksh |   2 +
 .../functional/dedup/dedup_legacy_fdt_mixed.ksh    |   2 +
 .../functional/dedup/dedup_legacy_fdt_upgrade.ksh  |   2 +
 .../tests/functional/dedup/dedup_legacy_import.ksh |   2 +
 .../tests/functional/dedup/dedup_prune.ksh         |   1 +
 .../tests/functional/dedup/dedup_zap_shrink.ksh    |   2 +
 .../redacted_send/redacted_max_blkid.ksh           | 118 ++++++++++++++
 .../removal/removal_with_missing_log.ksh           |  95 ++++++++++++
 sys/modules/zfs/zfs_config.h                       |   9 +-
 sys/modules/zfs/zfs_gitrev.h                       |   2 +-
 96 files changed, 1793 insertions(+), 429 deletions(-)

diff --cc sys/contrib/openzfs/README.md
index 1f823b594433,000000000000..7aa09cc324f2
mode 100644,000000..100644
--- a/sys/contrib/openzfs/README.md
+++ b/sys/contrib/openzfs/README.md
@@@ -1,71 -1,0 +1,71 @@@
 +![img](https://openzfs.github.io/openzfs-docs/_static/img/logo/480px-Open-ZFS-Secondary-Logo-Colour-halfsize.png)
 +
 +OpenZFS is an advanced file system and volume manager which was originally
 +developed for Solaris and is now maintained by the OpenZFS community.
 +This repository contains the code for running OpenZFS on Linux and FreeBSD.
 +
 +[![codecov](https://codecov.io/gh/openzfs/zfs/branch/master/graph/badge.svg)](https://codecov.io/gh/openzfs/zfs)
 +[![coverity](https://scan.coverity.com/projects/1973/badge.svg)](https://scan.coverity.com/projects/openzfs-zfs)
 +
 +# Official Resources
 +
 +  * [Documentation](https://openzfs.github.io/openzfs-docs/) - for using and developing this repo
 +  * [ZoL site](https://zfsonlinux.org) - Linux release info & links
 +  * [Mailing lists](https://openzfs.github.io/openzfs-docs/Project%20and%20Community/Mailing%20Lists.html)
 +  * [OpenZFS site](https://openzfs.org/) - for conference videos and info on other platforms (illumos, OSX, Windows, etc)
 +
 +# Installation
 +
 +Full documentation for installing OpenZFS on your favorite operating system can
 +be found at the [Getting Started Page](https://openzfs.github.io/openzfs-docs/Getting%20Started/index.html).
 +
 +# Contribute & Develop
 +
 +We have a separate document with [contribution guidelines](./.github/CONTRIBUTING.md).
 +
 +We have a [Code of Conduct](./CODE_OF_CONDUCT.md).
 +
 +# Release
 +
 +OpenZFS is released under a CDDL license.
 +For more details see the NOTICE, LICENSE and COPYRIGHT files; `UCRL-CODE-235197`
 +
 +# Supported Kernels and Distributions
 +
 +## Linux
 +
 +Given the wide variety of Linux environments, we prioritize development and testing on stable, supported kernels and distributions.
 +
 +### Kernel ([kernel.org](https://kernel.org))
 +
 +All **longterm** kernels from [kernel.org](https://kernel.org) are supported. **stable** kernels are usually supported in the next OpenZFS release.
 +
 +**Supported longterm kernels**: **6.18**, **6.12**, **6.6**, **6.1**, **5.15**, **5.10**.
 +
 +### Red Hat Enterprise Linux (RHEL)
 +
 +All RHEL (and compatible systems: AlmaLinux OS, Rocky Linux, etc) on the **full** or **maintenance** support tracks are supported.
 +
 +**Supported RHEL releases**: **8.10**, **9.7**, **10.1**.
 +
 +### Ubuntu
 +
 +All Ubuntu **LTS** releases are supported.
 +
- **Supported Ubuntu releases**: **24.04 “Noble”**, **22.04 “Jammy”**.
++**Supported Ubuntu releases**: **26.04 “Resolute”**, **24.04 “Noble”**, **22.04 “Jammy”**.
 +
 +### Debian
 +
 +All Debian **stable** and **LTS** releases are supported.
 +
 +**Supported Debian releases**: **13 “Trixie”**, **12 “Bookworm”**, **11 “Bullseye”**.
 +
 +### Other Distributions
 +
 +Generally, if a distribution is following an LTS kernel, it should work well with OpenZFS.
 +
 +## FreeBSD
 +
 +All FreeBSD releases receiving **security support** are supported by OpenZFS.
 +
- **Supported FreeBSD releases**: **15.0**, **14.3**, **13.5**.
++**Supported FreeBSD releases**: **15.0**, **14.4**.
diff --cc sys/contrib/openzfs/config/kernel-fs-parse.m4
index 000000000000,7a6ffa77238c..7a6ffa77238c
mode 000000,100644..100644
--- a/sys/contrib/openzfs/config/kernel-fs-parse.m4
+++ b/sys/contrib/openzfs/config/kernel-fs-parse.m4
diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/dedup/dedup_bclone_pruned.ksh
index 000000000000,d01d09ac12ee..d01d09ac12ee
mode 000000,100755..100755
--- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/dedup/dedup_bclone_pruned.ksh
+++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/dedup/dedup_bclone_pruned.ksh
diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/redacted_send/redacted_max_blkid.ksh
index 000000000000,13820b470222..13820b470222
mode 000000,100755..100755
--- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/redacted_send/redacted_max_blkid.ksh
+++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/redacted_send/redacted_max_blkid.ksh
diff --cc sys/contrib/openzfs/tests/zfs-tests/tests/functional/removal/removal_with_missing_log.ksh
index 000000000000,ddf8a4505adf..ddf8a4505adf
mode 000000,100755..100755
--- a/sys/contrib/openzfs/tests/zfs-tests/tests/functional/removal/removal_with_missing_log.ksh
+++ b/sys/contrib/openzfs/tests/zfs-tests/tests/functional/removal/removal_with_missing_log.ksh
diff --cc sys/modules/zfs/zfs_config.h
index e3e3437d438a,000000000000..63d2093e83d3
mode 100644,000000..100644
--- a/sys/modules/zfs/zfs_config.h
+++ b/sys/modules/zfs/zfs_config.h
@@@ -1,925 -1,0 +1,928 @@@
 +/*
 + */
 +
 +/* zfs_config.h.  Generated from zfs_config.h.in by configure.  */
 +/* zfs_config.h.in.  Generated from configure.ac by autoheader.  */
 +
 +/* Define to 1 if translation of program messages to the user's native
 +   language is requested. */
 +/* #undef ENABLE_NLS */
 +
 +/* __assign_str() has one arg */
 +/* #undef HAVE_1ARG_ASSIGN_STR */
 +
 +/* lookup_bdev() wants 1 arg */
 +/* #undef HAVE_1ARG_LOOKUP_BDEV */
 +
 +/* kernel has access_ok with 'type' parameter */
 +/* #undef HAVE_ACCESS_OK_TYPE */
 +
 +/* add_disk() returns int */
 +/* #undef HAVE_ADD_DISK_RET */
 +
 +/* Define if host toolchain supports AES */
 +#define HAVE_AES 1
 +
 +/* Define if you have [rt] */
 +#define HAVE_AIO_H 1
 +
 +/* Define if your assembler supports .cfi_negate_ra_state. */
 +/* #undef HAVE_AS_CFI_PSEUDO_OP */
 +
 +#ifdef __amd64__
 +#ifndef RESCUE
 +/* Define if host toolchain supports AVX */
 +#define HAVE_AVX 1
 +#endif
 +
 +/* Define if host toolchain supports AVX2 */
 +#define HAVE_AVX2 1
 +
 +/* Define if host toolchain supports AVX512BW */
 +#define HAVE_AVX512BW 1
 +
 +/* Define if host toolchain supports AVX512CD */
 +#define HAVE_AVX512CD 1
 +
 +/* Define if host toolchain supports AVX512DQ */
 +#define HAVE_AVX512DQ 1
 +
 +/* Define if host toolchain supports AVX512ER */
 +#define HAVE_AVX512ER 1
 +
 +/* Define if host toolchain supports AVX512F */
 +#define HAVE_AVX512F 1
 +
 +/* Define if host toolchain supports AVX512IFMA */
 +#define HAVE_AVX512IFMA 1
 +
 +/* Define if host toolchain supports AVX512PF */
 +#define HAVE_AVX512PF 1
 +
 +/* Define if host toolchain supports AVX512VBMI */
 +#define HAVE_AVX512VBMI 1
 +
 +/* Define if host toolchain supports AVX512VL */
 +#define HAVE_AVX512VL 1
 +#endif
 +
 +/* backtrace() is available */
 +/* #undef HAVE_BACKTRACE */
 +
 +/* bdevname() is available */
 +/* #undef HAVE_BDEVNAME */
 +
 +/* bdev_check_media_change() exists */
 +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */
 +
 +/* bdev_file_open_by_path() exists */
 +/* #undef HAVE_BDEV_FILE_OPEN_BY_PATH */
 +
 +/* bdev_*_io_acct() available */
 +/* #undef HAVE_BDEV_IO_ACCT_63 */
 +
 +/* bdev_*_io_acct() available */
 +/* #undef HAVE_BDEV_IO_ACCT_OLD */
 +
 +/* bdev_kobj() exists */
 +/* #undef HAVE_BDEV_KOBJ */
 +
 +/* bdev_max_discard_sectors() is available */
 +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */
 +
 +/* bdev_max_secure_erase_sectors() is available */
 +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */
 +
 +/* bdev_nr_bytes() is available */
 +/* #undef HAVE_BDEV_NR_BYTES */
 +
 +/* bdev_open_by_path() exists */
 +/* #undef HAVE_BDEV_OPEN_BY_PATH */
 +
 +/* bdev_release() exists */
 +/* #undef HAVE_BDEV_RELEASE */
 +
 +/* block_device_operations->submit_bio() returns void */
 +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */
 +
 +/* bdev_whole() is available */
 +/* #undef HAVE_BDEV_WHOLE */
 +
 +/* bio_alloc() takes 4 arguments */
 +/* #undef HAVE_BIO_ALLOC_4ARG */
 +
 +/* bio->bi_bdev->bd_disk exists */
 +/* #undef HAVE_BIO_BDEV_DISK */
 +
 +/* bio_*_io_acct() available */
 +/* #undef HAVE_BIO_IO_ACCT */
 +
 +/* bio_max_segs() is implemented */
 +/* #undef HAVE_BIO_MAX_SEGS */
 +
 +/* bio_set_dev() GPL-only */
 +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */
 +
 +/* bio_set_dev() is a macro */
 +/* #undef HAVE_BIO_SET_DEV_MACRO */
 +
 +/* bio_set_op_attrs is available */
 +/* #undef HAVE_BIO_SET_OP_ATTRS */
 +
 +/* blkdev_get_by_path() exists and takes 4 args */
 +/* #undef HAVE_BLKDEV_GET_BY_PATH_4ARG */
 +
 +/* blkdev_get_by_path() handles ERESTARTSYS */
 +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */
 +
 +/* __blkdev_issue_discard(flags) is available */
 +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_FLAGS */
 +
 +/* __blkdev_issue_discard() is available */
 +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_ASYNC_NOFLAGS */
 +
 +/* blkdev_issue_discard(flags) is available */
 +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_FLAGS */
 +
 +/* blkdev_issue_discard() is available */
 +/* #undef HAVE_BLKDEV_ISSUE_DISCARD_NOFLAGS */
 +
 +/* blkdev_issue_secure_erase() is available */
 +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */
 +
 +/* blkdev_put() exists */
 +/* #undef HAVE_BLKDEV_PUT */
 +
 +/* blkdev_put() accepts void* as arg 2 */
 +/* #undef HAVE_BLKDEV_PUT_HOLDER */
 +
 +/* struct queue_limits has a features field */
 +/* #undef HAVE_BLKDEV_QUEUE_LIMITS_FEATURES */
 +
 +/* blkdev_reread_part() exists */
 +/* #undef HAVE_BLKDEV_REREAD_PART */
 +
 +/* blkg_tryget() is available */
 +/* #undef HAVE_BLKG_TRYGET */
 +
 +/* blkg_tryget() GPL-only */
 +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */
 +
 +/* blk_alloc_disk() exists */
 +/* #undef HAVE_BLK_ALLOC_DISK */
 +
 +/* blk_alloc_disk() exists and takes 2 args */
 +/* #undef HAVE_BLK_ALLOC_DISK_2ARG */
 +
 +/* blk_alloc_queue() expects request function */
 +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */
 +
 +/* blk_alloc_queue_rh() expects request function */
 +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */
 +
 +/* blk_cleanup_disk() exists */
 +/* #undef HAVE_BLK_CLEANUP_DISK */
 +
 +/* blk_mode_t is defined */
 +/* #undef HAVE_BLK_MODE_T */
 +
 +/* block multiqueue hardware context is cached in struct request */
 +/* #undef HAVE_BLK_MQ_RQ_HCTX */
 +
 +/* blk queue backing_dev_info is dynamic */
 +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */
 +
 +/* blk_queue_discard() is available */
 +/* #undef HAVE_BLK_QUEUE_DISCARD */
 +
 +/* backing_dev_info is available through queue gendisk */
 +/* #undef HAVE_BLK_QUEUE_DISK_BDI */
 +
 +/* blk_queue_rot() is available */
 +/* #undef HAVE_BLK_QUEUE_ROT */
 +
 +/* blk_queue_secure_erase() is available */
 +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */
 +
 +/* blk_queue_update_readahead() exists */
 +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */
 +
 +/* BLK_STS_RESV_CONFLICT is defined */
 +/* #undef HAVE_BLK_STS_RESV_CONFLICT */
 +
 +/* Define if getgeo() in block_device_operations takes struct gendisk * as its
 +   first arg */
 +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_GETGEO_GENDISK */
 +
 +/* Define if release() in block_device_operations takes 1 arg */
 +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_1ARG */
 +
 +/* Define if revalidate_disk() in block_device_operations */
 +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */
 +
 +/* Define to 1 if you have the Mac OS X function
 +   CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */
 +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */
 +
 +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
 +   the CoreFoundation framework. */
 +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
 +
 +/* check_disk_change() exists */
 +/* #undef HAVE_CHECK_DISK_CHANGE */
 +
 +/* copy_splice_read exists */
 +/* #undef HAVE_COPY_SPLICE_READ */
 +
 +/* cpu_has_feature() is GPL-only */
 +/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */
 +
 +/* Define if the GNU dcgettext() function is already present or preinstalled.
 +   */
 +/* #undef HAVE_DCGETTEXT */
 +
 +/* DECLARE_EVENT_CLASS() is available */
 +/* #undef HAVE_DECLARE_EVENT_CLASS */
 +
 +/* dentry aliases are in d_u member */
 +/* #undef HAVE_DENTRY_D_U_ALIASES */
 +
 +/* 3-arg dequeue_signal() takes a type argument */
 +/* #undef HAVE_DEQUEUE_SIGNAL_3ARG_TYPE */
 +
 +/* dequeue_signal() takes 4 arguments */
 +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */
 +
 +/* lookup_bdev() wants dev_t arg */
 +/* #undef HAVE_DEVT_LOOKUP_BDEV */
 +
 +/* disk_check_media_change() exists */
 +/* #undef HAVE_DISK_CHECK_MEDIA_CHANGE */
 +
 +/* disk_*_io_acct() available */
 +/* #undef HAVE_DISK_IO_ACCT */
 +
 +/* disk_update_readahead() exists */
 +/* #undef HAVE_DISK_UPDATE_READAHEAD */
 +
 +/* Define to 1 if you have the <dlfcn.h> header file. */
 +#define HAVE_DLFCN_H 1
 +
 +/* dops->d_revalidate() takes 4 args */
 +/* #undef HAVE_D_REVALIDATE_4ARGS */
 +
 +/* Define if d_set_d_op() is available */
 +/* #undef HAVE_D_SET_D_OP */
 +
 +/* Define to 1 if you have the 'execvpe' function. */
 +#define HAVE_EXECVPE 1
 +
 +/* fault_in_iov_iter_readable() is available */
 +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */
 +
 +/* linux/filelock.h exists */
 +/* #undef HAVE_FILELOCK_HEADER */
 +
 +/* file->f_version exists */
 +/* #undef HAVE_FILE_F_VERSION */
 +
 +/* flush_dcache_page() is GPL-only */
 +/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */
 +
 +/* Define if compiler supports -Wformat-overflow */
 +/* #undef HAVE_FORMAT_OVERFLOW */
 +
 +/* fsync_bdev() is declared in include/blkdev.h */
 +/* #undef HAVE_FSYNC_BDEV */
 +
 +/* fs_context exists */
 +/* #undef HAVE_FS_CONTEXT */
 +
++/* fs_parse() takes fs_parameter_spec directly */
++/* #undef HAVE_FS_PARSE_TAKES_SPEC */
++
 +/* yes */
 +/* #undef HAVE_GENERIC_FADVISE */
 +
 +/* generic_fillattr requires struct mnt_idmap* */
 +/* #undef HAVE_GENERIC_FILLATTR_IDMAP */
 +
 +/* generic_fillattr requires struct mnt_idmap* and u32 request_mask */
 +/* #undef HAVE_GENERIC_FILLATTR_IDMAP_REQMASK */
 +
 +/* generic_fillattr requires struct user_namespace* */
 +/* #undef HAVE_GENERIC_FILLATTR_USERNS */
 +
 +/* generic_*_io_acct() 4 arg available */
 +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */
 +
 +/* GENHD_FL_EXT_DEVT flag is available */
 +/* #undef HAVE_GENHD_FL_EXT_DEVT */
 +
 +/* GENHD_FL_NO_PART flag is available */
 +/* #undef HAVE_GENHD_FL_NO_PART */
 +
 +/* Define if the GNU gettext() function is already present or preinstalled. */
 +/* #undef HAVE_GETTEXT */
 +
 +/* Define to 1 if you have the 'gettid' function. */
 +/* #undef HAVE_GETTID */
 +
 +/* iops->get_acl() exists */
 +/* #undef HAVE_GET_ACL */
 +
 +/* iops->get_acl() takes rcu */
 +/* #undef HAVE_GET_ACL_RCU */
 +
 +/* has iops->get_inode_acl() */
 +/* #undef HAVE_GET_INODE_ACL */
 +
 +/* iattr->ia_vfsuid and iattr->ia_vfsgid exist */
 +/* #undef HAVE_IATTR_VFSID */
 +
 +/* Define if you have the iconv() function and it works. */
 +#define HAVE_ICONV 1
 +
 +/* iops->getattr() takes struct mnt_idmap* */
 +/* #undef HAVE_IDMAP_IOPS_GETATTR */
 +
 +/* iops->setattr() takes struct mnt_idmap* */
 +/* #undef HAVE_IDMAP_IOPS_SETATTR */
 +
 +/* APIs for idmapped mount are present */
 +/* #undef HAVE_IDMAP_MNT_API */
 +
 +/* mnt_idmap does not have user_namespace */
 +/* #undef HAVE_IDMAP_NO_USERNS */
 +
 +/* Define if compiler supports -Wimplicit-fallthrough */
 +/* #undef HAVE_IMPLICIT_FALLTHROUGH */
 +
 +/* Define if compiler supports -Winfinite-recursion */
 +/* #undef HAVE_INFINITE_RECURSION */
 +
 +/* inode_generic_drop() exists */
 +/* #undef HAVE_INODE_GENERIC_DROP */
 +
 +/* inode_get_atime() exists in linux/fs.h */
 +/* #undef HAVE_INODE_GET_ATIME */
 +
 +/* inode_get_ctime() exists in linux/fs.h */
 +/* #undef HAVE_INODE_GET_CTIME */
 +
 +/* inode_get_mtime() exists in linux/fs.h */
 +/* #undef HAVE_INODE_GET_MTIME */
 +
 +/* inode_owner_or_capable() exists */
 +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */
 +
 +/* inode_owner_or_capable() takes mnt_idmap */
 +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */
 +
 +/* inode_owner_or_capable() takes user_ns */
 +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */
 +
 +/* inode_set_atime_to_ts() exists in linux/fs.h */
 +/* #undef HAVE_INODE_SET_ATIME_TO_TS */
 +
 +/* inode_set_ctime_to_ts() exists in linux/fs.h */
 +/* #undef HAVE_INODE_SET_CTIME_TO_TS */
 +
 +/* inode_set_mtime_to_ts() exists in linux/fs.h */
 +/* #undef HAVE_INODE_SET_MTIME_TO_TS */
 +
 +/* inode_state_read_once() exists */
 +/* #undef HAVE_INODE_STATE_READ_ONCE */
 +
 +/* timestamp_truncate() exists */
 +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */
 +
 +/* Define to 1 if you have the <inttypes.h> header file. */
 +#define HAVE_INTTYPES_H 1
 +
 +/* iops->create() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_CREATE_IDMAP */
 +
 +/* iops->create() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_CREATE_USERNS */
 +
 +/* iops->mkdir() returns struct dentry* */
 +/* #undef HAVE_IOPS_MKDIR_DENTRY */
 +
 +/* iops->mkdir() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_MKDIR_IDMAP */
 +
 +/* iops->mkdir() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_MKDIR_USERNS */
 +
 +/* iops->mknod() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_MKNOD_IDMAP */
 +
 +/* iops->mknod() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_MKNOD_USERNS */
 +
 +/* iops->permission() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_PERMISSION_IDMAP */
 +
 +/* iops->permission() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_PERMISSION_USERNS */
 +
 +/* iops->rename() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_RENAME_IDMAP */
 +
 +/* iops->rename() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_RENAME_USERNS */
 +
 +/* iops->symlink() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_SYMLINK_IDMAP */
 +
 +/* iops->symlink() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_SYMLINK_USERNS */
 +
 +/* iov_iter_get_pages2() is available */
 +/* #undef HAVE_IOV_ITER_GET_PAGES2 */
 +
 +/* iov_iter_type() is available */
 +/* #undef HAVE_IOV_ITER_TYPE */
 +
 +/* Define to 1 if you have the 'issetugid' function. */
 +#define HAVE_ISSETUGID 1
 +
 +/* iter_iov() is available */
 +/* #undef HAVE_ITER_IOV */
 +
 +/* iter_is_ubuf() is available */
 +/* #undef HAVE_ITER_IS_UBUF */
 +
 +/* kasan_enabled() is GPL-only */
 +/* #undef HAVE_KASAN_ENABLED_GPL_ONLY */
 +
 +/* kernel has kernel_fpu_* functions */
 +/* #undef HAVE_KERNEL_FPU */
 +
 +/* kernel has asm/fpu/api.h */
 +/* #undef HAVE_KERNEL_FPU_API_HEADER */
 +
 +/* kernel fpu internal */
 +/* #undef HAVE_KERNEL_FPU_INTERNAL */
 +
 +/* kernel has asm/fpu/internal.h */
 +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */
 +
 +/* Define if compiler supports -Winfinite-recursion */
 +/* #undef HAVE_KERNEL_INFINITE_RECURSION */
 +
 +/* kernel defines intptr_t */
 +/* #undef HAVE_KERNEL_INTPTR_T */
 +
 +/* kernel has kernel_neon_* functions */
 +/* #undef HAVE_KERNEL_NEON */
 +
 +/* kernel does stack verification */
 +/* #undef HAVE_KERNEL_OBJTOOL */
 +
 +/* kernel has linux/objtool.h */
 +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */
 +
 +/* strlcpy() exists */
 +/* #undef HAVE_KERNEL_STRLCPY */
 +
 +/* kernel has kmap_local_page */
 +/* #undef HAVE_KMAP_LOCAL_PAGE */
 +
 +/* Define if you have [aio] */
 +/* #undef HAVE_LIBAIO */
 +
 +/* Define if you have [blkid] */
 +/* #undef HAVE_LIBBLKID */
 +
 +/* Define if you have [crypto] */
 +#define HAVE_LIBCRYPTO 1
 +
 +/* Define if you have [tirpc] */
 +/* #undef HAVE_LIBTIRPC */
 +
 +/* Define if you have [udev] */
 +/* #undef HAVE_LIBUDEV */
 +
 +/* Define if you have [unwind] */
 +/* #undef HAVE_LIBUNWIND */
 +
 +/* libunwind has unw_get_elf_filename */
 +/* #undef HAVE_LIBUNWIND_ELF */
 +
 +/* Define if you have [uuid] */
 +/* #undef HAVE_LIBUUID */
 +
 +/* building against unsupported kernel version */
 +/* #undef HAVE_LINUX_EXPERIMENTAL */
 +
 +/* makedev() is declared in sys/mkdev.h */
 +/* #undef HAVE_MAKEDEV_IN_MKDEV */
 +
 +/* makedev() is declared in sys/sysmacros.h */
 +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */
 +
 +/* Noting that make_request_fn() returns blk_qc_t */
 +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */
 +
 +/* Define to 1 if you have the 'mlockall' function. */
 +#define HAVE_MLOCKALL 1
 +
 +/* 'flags' in 'struct page' is a struct */
 +/* #undef HAVE_MM_PAGE_FLAGS_STRUCT */
 +
 +/* PG_error flag is available */
 +/* #undef HAVE_MM_PAGE_FLAG_ERROR */
 +
 +/* page_mapping() is available */
 +/* #undef HAVE_MM_PAGE_MAPPING */
 +
 +/* page_size() is available */
 +/* #undef HAVE_MM_PAGE_SIZE */
 +
 +/* mount_setattr() and struct mount_attr are available */
 +/* #undef HAVE_MOUNT_SETATTR */
 +
 +/* Define if host toolchain supports MOVBE */
 +#define HAVE_MOVBE 1
 +
 +/* Define if ns_type is accessible through ns_common */
 +/* #undef HAVE_NS_COMMON_TYPE */
 +
 +/* folio_wait_bit() exists */
 +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */
 +
 +/* readahead_page() exists */
 +/* #undef HAVE_PAGEMAP_READAHEAD_PAGE */
 +
 +/* part_to_dev() exists */
 +/* #undef HAVE_PART_TO_DEV */
 +
 +/* iops->getattr() takes a path */
 +/* #undef HAVE_PATH_IOPS_GETATTR */
 +
 +/* Define if host toolchain supports PCLMULQDQ */
 +#define HAVE_PCLMULQDQ 1
 +
 +/* pin_user_pages_unlocked() is available */
 +/* #undef HAVE_PIN_USER_PAGES_UNLOCKED */
 +
 +/* posix_acl_to_xattr() allocates its result */
 +/* #undef HAVE_POSIX_ACL_TO_XATTR_ALLOC */
 +
 +/* proc_handler ctl_table arg is const */
 +/* #undef HAVE_PROC_HANDLER_CTL_TABLE_CONST */
 +
 +/* proc_ops structure exists */
 +/* #undef HAVE_PROC_OPS_STRUCT */
 +
 +/* If available, contains the Python version number currently in use. */
 +/* #undef HAVE_PYTHON */
 +
 +/* qat is enabled and existed */
 +/* #undef HAVE_QAT */
 +
 +/* struct reclaim_state has reclaimed */
 +/* #undef HAVE_RECLAIM_STATE_RECLAIMED */
 +
 +/* register_shrinker is vararg */
 +/* #undef HAVE_REGISTER_SHRINKER_VARARG */
 +
 +/* register_sysctl_sz exists */
 +/* #undef HAVE_REGISTER_SYSCTL_SZ */
 +
 +/* register_sysctl_table exists */
 +/* #undef HAVE_REGISTER_SYSCTL_TABLE */
 +
 +/* iops->rename() wants flags */
 +/* #undef HAVE_RENAME_WANTS_FLAGS */
 +
 +/* revalidate_disk() is available */
 +/* #undef HAVE_REVALIDATE_DISK */
 +
 +/* revalidate_disk_size() is available */
 +/* #undef HAVE_REVALIDATE_DISK_SIZE */
 +
 +/* Define to 1 if you have the <security/pam_modules.h> header file. */
 +#define HAVE_SECURITY_PAM_MODULES_H 1
 +
 +/* setattr_prepare() accepts mnt_idmap */
 +/* #undef HAVE_SETATTR_PREPARE_IDMAP */
 +
 +/* setattr_prepare() is available, doesn't accept user_namespace */
 +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */
 +
 +/* setattr_prepare() accepts user_namespace */
 +/* #undef HAVE_SETATTR_PREPARE_USERNS */
 +
 +/* iops->set_acl() takes 4 args, arg1 is struct mnt_idmap * */
 +/* #undef HAVE_SET_ACL_IDMAP_DENTRY */
 +
 +/* iops->set_acl() takes 4 args */
 +/* #undef HAVE_SET_ACL_USERNS */
 +
 +/* iops->set_acl() takes 4 args, arg2 is struct dentry * */
 +/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */
 +
 +/* Define if set_default_d_op() is available */
 +/* #undef HAVE_SET_DEFAULT_D_OP */
 +
 +/* shrinker_register exists */
 +/* #undef HAVE_SHRINKER_REGISTER */
 +
 +/* kernel_siginfo_t exists */
 +/* #undef HAVE_SIGINFO */
 +
 +/* sops->free_inode() exists */
 +/* #undef HAVE_SOPS_FREE_INODE */
 +
 +#if defined(__amd64__) || defined(__i386__)
 +/* Define if host toolchain supports SSE */
 +#define HAVE_SSE 1
 +
 +/* Define if host toolchain supports SSE2 */
 +#define HAVE_SSE2 1
 +
 +/* Define if host toolchain supports SSE3 */
 +#define HAVE_SSE3 1
 +
 +/* Define if host toolchain supports SSE4.1 */
 +#define HAVE_SSE4_1 1
 +
 +/* Define if host toolchain supports SSE4.2 */
 +#define HAVE_SSE4_2 1
 +
 +/* Define if host toolchain supports SSSE3 */
 +#define HAVE_SSSE3 1
 +#endif
 +
 +/* STACK_FRAME_NON_STANDARD is defined */
 +/* #undef HAVE_STACK_FRAME_NON_STANDARD */
 +
 +/* STACK_FRAME_NON_STANDARD asm macro is defined */
 +/* #undef HAVE_STACK_FRAME_NON_STANDARD_ASM */
 +
 +/* standalone <linux/stdarg.h> exists */
 +/* #undef HAVE_STANDALONE_LINUX_STDARG */
 +
 +/* statx() is available */
 +/* #undef HAVE_STATX */
 +
 +/* STATX_MNT_ID is available */
 +/* #undef HAVE_STATX_MNT_ID */
 +
 +/* Define to 1 if you have the <stdint.h> header file. */
 +#define HAVE_STDINT_H 1
 +
 +/* Define to 1 if you have the <stdio.h> header file. */
 +#define HAVE_STDIO_H 1
 +
 +/* Define to 1 if you have the <stdlib.h> header file. */
 +#define HAVE_STDLIB_H 1
 +
 +/* Define to 1 if you have the <strings.h> header file. */
 +#define HAVE_STRINGS_H 1
 +
 +/* Define to 1 if you have the <string.h> header file. */
 +#define HAVE_STRING_H 1
 +
 +/* Define to 1 if you have the 'strlcat' function. */
 +#define HAVE_STRLCAT 1
 +
 +/* Define to 1 if you have the 'strlcpy' function. */
 +#define HAVE_STRLCPY 1
 +
 +/* submit_bio is member of struct block_device_operations */
 +/* #undef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */
 +
 +/* have super_block s_shrink */
 +/* #undef HAVE_SUPER_BLOCK_S_SHRINK */
 +
 +/* have super_block s_shrink pointer */
 +/* #undef HAVE_SUPER_BLOCK_S_SHRINK_PTR */
 +
 +/* have super_block s_wb_err */
 +/* #undef HAVE_SUPER_BLOCK_S_WB_ERR */
 +
 +/* sync_blockdev() is declared in include/blkdev.h */
 +/* #undef HAVE_SYNC_BLOCKDEV */
 +
 +/* struct kobj_type has default_groups */
 +/* #undef HAVE_SYSFS_DEFAULT_GROUPS */
 +
 +/* Define to 1 if you have the <sys/stat.h> header file. */
 +#define HAVE_SYS_STAT_H 1
 +
 +/* Define to 1 if you have the <sys/types.h> header file. */
 +#define HAVE_SYS_TYPES_H 1
 +
 +/* timer_delete_sync is available */
 +/* #undef HAVE_TIMER_DELETE_SYNC */
 +
 +/* i_op->tmpfile() uses old dentry signature */
 +/* #undef HAVE_TMPFILE_DENTRY */
 +
 +/* i_op->tmpfile() has mnt_idmap */
 +/* #undef HAVE_TMPFILE_IDMAP */
 +
 +/* i_op->tmpfile() has userns */
 +/* #undef HAVE_TMPFILE_USERNS */
 +
 +/* totalhigh_pages() exists */
 +/* #undef HAVE_TOTALHIGH_PAGES */
 +
 +/* kernel has totalram_pages() */
*** 204 LINES SKIPPED ***