OpenZFS/src c642e98module/zfs zfs_vnops.c

Revert "Temporarily disable Direct IO by default"

This partially reverts commit 41210597.  Now that b4e4cbeb2 has
been merged Direct IO can be enabled by default for Linux, but
for FreeBSD there still remains a potentially insufficient range
locking in zfs_getpages() which needs to be resolved.

Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #16629 
DeltaFile
+7-0module/zfs/zfs_vnops.c
+7-01 files

OpenZFS/src 48dfe39config user.m4, include libzutil.h

Fallback to strerror() when strerror_l() isn't available

Some C libraries, such as uClibc, do not provide strerror_l() in
which case we fallback to strerror().

Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #16636 
Closes #16640 
DeltaFile
+4-0include/libzutil.h
+1-1config/user.m4
+5-12 files

OpenZFS/src 97ba7c2tests/zfs-tests/tests/functional/cli_root/zpool_import zpool_import_parallel_pos.ksh

ZTS: Increase zpool_import_parallel_pos import margin

Increase the pool import time allowed by assuming a minimum reduction
to 1/2 instead of 1/3 when comparing sequential to parallel import
times.  This is sufficient to verify parallel imports are working as
intended and should address the occasional false positive failure
when the time is slightly exceeded.

Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: George Melikov <mail at gmelikov.ru>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #16638 
DeltaFile
+2-2tests/zfs-tests/tests/functional/cli_root/zpool_import/zpool_import_parallel_pos.ksh
+2-21 files

OpenZFS/src 9f3f80ctests/zfs-tests/tests/functional/dedup dedup_quota.ksh

ZTS: Slightly increase dedup_quota limit

As described in the comment above this check the space used by
logged entries is not accounted for and some margin needs to be
added in.  While uncommon we have slightly exceeded the 600,000
threshold on some CI run so we increase the limit a bit more.

Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: George Melikov <mail at gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #16637 
DeltaFile
+1-1tests/zfs-tests/tests/functional/dedup/dedup_quota.ksh
+1-11 files

OpenZFS/src 34efa8e.github/workflows codeql.yml

CI: Stick with ubuntu-22.04 for CodeQL analysis

The ubuntu-latest alias now refers to ubuntu-24.04 instead of
ubuntu-22.04 which causes CodeQL's autobuild to fail with:

    cpp/autobuilder: deptrace not supported in ubuntu 24.04

Until deptrace is supported by ubuntu-24.04 hosted runners request
ubuntu-22.04 which is supported.

Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: George Melikov <mail at gmelikov.ru>
Closes #16639 
DeltaFile
+1-1.github/workflows/codeql.yml
+1-11 files

OpenZFS/src 7e4be92cmd/zdb zdb.c

zdb: fix printf format in dump_zap()

When compiling zdb.c on 32-bit platforms, a format conversion error 
is reported for a printf() in dump_zap().  Change %l to macro 
%" PRIu64 " to match the platform size of a 64-bit unsigned integer.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Martin Matuska <mm at FreeBSD.org>
Closes #16635 
DeltaFile
+1-1cmd/zdb/zdb.c
+1-11 files

OpenZFS/src 7bf5255cmd/zfs zfs_main.c, cmd/zpool zpool_main.c

zpool/zfs: allow --json wherever -j is allowed

Mostly so that with the JSON formatting options are also used, they all
look the same. To my eye, `-j --json-flat-vdevs` suggests that they are
different or unrelated, while `--json --json-flat-vdevs` invites no
further questions.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Umer Saleem <usaleem at ixsystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
Closes #16632 
DeltaFile
+31-20tests/zfs-tests/tests/functional/cli_root/json/json_sanity.ksh
+24-4cmd/zfs/zfs_main.c
+9-1cmd/zpool/zpool_main.c
+2-2man/man8/zpool-get.8
+1-1man/man8/zpool-list.8
+1-1man/man8/zpool-status.8
+68-294 files not shown
+72-3310 files

OpenZFS/src b4e4cbeinclude/sys zio.h, module/os/freebsd/zfs abd_os.c

Always validate checksums for Direct I/O reads

This fixes an oversight in the Direct I/O PR. There is nothing that
stops a process from manipulating the contents of a buffer for a
Direct I/O read while the I/O is in flight. This can lead checksum
verify failures. However, the disk contents are still correct, and this
would lead to false reporting of checksum validation failures.

To remedy this, all Direct I/O reads that have a checksum verification
failure are treated as suspicious. In the event a checksum validation
failure occurs for a Direct I/O read, then the I/O request will be
reissued though the ARC. This allows for actual validation to happen and
removes any possibility of the buffer being manipulated after the I/O
has been issued.

Just as with Direct I/O write checksum validation failures, Direct I/O
read checksum validation failures are reported though zpool status -d in
the DIO column. Also the zevent has been updated to have both:
1. dio_verify_wr -> Checksum verification failure for writes

    [35 lines not shown]
DeltaFile
+121-59tests/zfs-tests/cmd/manipulate_user_buffer.c
+85-35module/zfs/zio.c
+107-0tests/zfs-tests/tests/functional/direct/dio_read_verify.ksh
+39-5module/zfs/vdev_raidz.c
+37-4module/os/freebsd/zfs/abd_os.c
+15-14include/sys/zio.h
+404-11718 files not shown
+510-14624 files

OpenZFS/src efeb60binclude/os/freebsd/zfs/sys abd_os.h

FreeBSD: ignore some includes when not building kernel

The function abd_alloc_from_pages() is used only in kernel.
Excluding sys/vm.h, and vm/vm_page.h includes avoids dependency
problems.

Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Martin Matuska <mm at FreeBSD.org>
Closes #16616 
DeltaFile
+4-0include/os/freebsd/zfs/sys/abd_os.h
+4-01 files

OpenZFS/src 4319e71cmd ztest.c, lib/libzfs libzfs_pool.c

ztest: Fix scrub check in ztest_raidz_expand_check()

The scrub code may return EBUSY under several possible scenarios
causing ztest to incorrectly ASSERT when verifying the result of
a raidz expansion.  Update the test case to allow EBUSY since it
does not indicate pool damage.

Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #16627 
DeltaFile
+18-1cmd/ztest.c
+1-1lib/libzfs/libzfs_pool.c
+19-22 files

OpenZFS/src cefef28man/man5 vdev_id.conf.5, udev vdev_id

vdev_id: multi-lun disks & slot num zero pad

Add ability to generate disk names that contain both a slot number
and a lun number in order to support multi-actuator SAS hard drives
with multiple luns. Also add the ability to zero pad slot numbers to
a desired digit length for easier sorting.

Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Matthew Heller <matthew.f.heller at accre.vanderbilt.edu>
Closes #16603 
DeltaFile
+15-3udev/vdev_id
+9-1man/man5/vdev_id.conf.5
+24-42 files

OpenZFS/src 75dda92tests/zfs-tests/tests/functional/replacement resilver_restart_001.ksh

ZTS: resilver_restart_001.ksh restore defaults

Update resilver_restart_001.ksh to restore the default
resilver_defer_percent when the test completes.

Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: Pavel Snajdr <snajpa at snajpa.net>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #16618 
DeltaFile
+3-0tests/zfs-tests/tests/functional/replacement/resilver_restart_001.ksh
+3-01 files

OpenZFS/src 65a94ffconfig deb.am

Only serialize native-deb* targets

.NOTPARALLEL target is being forced on userspace as well. This commit
removes .NOTPARALEL target and only serializes the execution of
native-deb* targets.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Umer Saleem <usaleem at ixsystems.com>
Closes #16622 
DeltaFile
+8-4config/deb.am
+8-41 files

OpenZFS/src ca0141fcmd/zfs zfs_main.c, cmd/zpool zpool_main.c

zpool/zfs: restore -V & --version options

The -j option added a round of getopt, which didn't know the magic
version flags. So just bypass the whole thing and go straight to the
human output function for the special case.

Sponsored-by: https://despairlabs.com/sponsor/
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Umer Saleem <usaleem at ixsystems.com>
Signed-off-by: Rob Norris <robn at despairlabs.com>
Closes #16615 
Closes #16617 
DeltaFile
+1-1cmd/zpool/zpool_main.c
+1-1cmd/zfs/zfs_main.c
+2-22 files

OpenZFS/src ab777f4lib/libspl/include/sys uio.h

Return boolean_t in inline functions of lib/libspl/include/sys/uio.h

The inline functions zfs_dio_offset_aligned(), zfs_dio_size_aligned()
and zfs_dio_aligned() are declared as boolean_t but return the bool
type.

This fixes the build of FreeBSD.

Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Martin Matuska <mm at FreeBSD.org>
Closes #16613 
DeltaFile
+4-4lib/libspl/include/sys/uio.h
+4-41 files

OpenZFS/src e8f0aa1config deb.am, contrib/debian control Makefile.am

Bump SONAME of libzfs and libzpool

The ABI of libzfs and libzpool have breaking changes since last
SONAME bump in commit fe6babc:

* libzfs: `zpool_print_unsup_feat` removed (used by zpool cmd).
* libzpool: multiple `ddt_*` symbols removed (used by zdb cmd).

Bump them to avoid ABI breakage.

See: https://github.com/openzfs/zfs/pull/11817
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Shengqi Chen <harry-chen at outlook.com>
Closes #16609
DeltaFile
+24-21rpm/generic/zfs.spec.in
+13-13contrib/debian/control
+4-4config/deb.am
+4-4contrib/debian/Makefile.am
+2-2contrib/debian/clean
+2-0contrib/debian/openzfs-libzpool6.docs
+49-4410 files not shown
+57-5416 files

OpenZFS/src c59d549contrib/debian openzfs-zfsutils.install

contrib/debian: add new manpages to installation list

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Shengqi Chen <harry-chen at outlook.com>
Closes #16609
DeltaFile
+2-0contrib/debian/openzfs-zfsutils.install
+2-01 files

OpenZFS/src 0b4dcbemodule/zfs dsl_dataset.c, tests/zfs-tests/tests/functional/zvol/zvol_misc zvol_misc_snapdev.ksh

Fix generation of kernel uevents for snapshot rename on linux

`zvol_rename_minors()` needs to be given the full path not just the
snapshot name.  Use code removed in a0bd735ad as a guide
to providing the necessary values.

Add ZTS check for /dev changes after snapshot rename.  After
renaming a snapshot with 'snapdev=visible' ensure that the /dev
entries are updated to reflect the rename.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: James Dingwall <james at dingwall.me.uk>
Closes #14223 
Closes #16600 
DeltaFile
+13-0tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_snapdev.ksh
+9-2module/zfs/dsl_dataset.c
+22-22 files

OpenZFS/src 995a3a6.github/workflows/scripts qemu-9-summary-page.sh

ZTS: Fix summary page creation again - second try

In PR #16599 I used 'return' like in C - which is wrong :/
This fix generates the summary as needed.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Tino Reichardt <milky-zfs at mcmilk.de>
Closes #16611 
DeltaFile
+2-2.github/workflows/scripts/qemu-9-summary-page.sh
+2-21 files

OpenZFS/src 87ca6ba.github/workflows zfs-qemu.yml, .github/workflows/scripts qemu-2-start.sh

ZTS: Remove FreeBSD 13.4-STABLE

Current CI is failing on FreeBSD 13.4-STABLE, because samba4 can't be
installed there. Lets remove it for now.

Update also the FreeBSD version definitions a bit.

The naming is like this now:

FreeBSD variants:
- freebsd13-3r, freebsd13-4r, freebsd14-0r, freebsd14-1r (RELEASE)
- freebsd13-4s, freebsd14-1s (STABLE)
- freebsd15-0c (CURRENT)

RHL based distros:
- almalinux8, almalinux9, centos-stream9, fedora39, fedora40

Debian based:
- debian11, debian12, ubuntu20, ubuntu22, ubuntu24

    [6 lines not shown]
DeltaFile
+22-10.github/workflows/scripts/qemu-2-start.sh
+8-6.github/workflows/zfs-qemu.yml
+30-162 files

OpenZFS/src 437227a. META

Update META

Increase the version to 2.3.99 to indicate the master branch is
newer than the 2.3.x release.  This ensures packages built from
master branch are considered to be newer than the last release.

Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
DeltaFile
+2-2META
+2-21 files

OpenZFS/src 3a9fca9. META

Tag 2.3.0-rc1

Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
DeltaFile
+2-2META
+2-21 files

OpenZFS/src 45addf7contrib/debian rules.in

Update path for zed in zfs-zed.service for native debian packages

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Umer Saleem <usaleem at ixsystems.com>
Closes#15638
DeltaFile
+1-0contrib/debian/rules.in
+1-01 files

OpenZFS/src cc9e36aconfig deb.am

Disable parallel build for native-deb* targets

Running native-deb* targets in parallel via make is not supported.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Umer Saleem <usaleem at ixsystems.com>
Closes#14736
DeltaFile
+2-0config/deb.am
+2-01 files

OpenZFS/src c204c3fcontrib/debian Makefile.am rules.in

Fix missing packaging files from release tarballs

Properly distribute files for native Debian packages. This fixes the
issue with broken release tarballs.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Umer Saleem <usaleem at ixsystems.com>
Closes#15404
Closes#15586
DeltaFile
+48-0contrib/debian/Makefile.am
+6-0contrib/debian/rules.in
+0-1contrib/debian/openzfs-zfsutils.zfs-import.init
+0-1contrib/debian/openzfs-zfsutils.zfs-load-key.init
+0-1contrib/debian/openzfs-zfsutils.zfs-share.init
+0-1contrib/debian/openzfs-zfsutils.zfs-mount.init
+54-42 files not shown
+55-58 files

OpenZFS/src 42ce4b1include/sys zap.h

ZAP: Align za_name in zap_attribute_t to 8 bytes

Our code reading/writing there may not handle misaligned accesses
on a platforms that may care about it.  I don't see a point to
complicate it to satisfy UBSan in CI. This alignment costs nothing.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by:  Alexander Motin <mav at FreeBSD.org>
Sponsored by:   iXsystems, Inc.
Closes #15921
Closes #16606 
DeltaFile
+1-0include/sys/zap.h
+1-01 files

OpenZFS/src 4ebe674module/zfs arc.c

ARC: Cache arc_c value during arc_evict()

Since arc_evict() run can take some time, arc_c change during it
may result in undesired shift in ARC states balance. Primarily in
case of arc_c reduction it may cause eviction from MFU data state
despite its being below the target already.  Instead we should
evict as originally planned and if needed do another round after.

Reviewed-by: Theera K. <tkittich at hotmail.com>
Reviewed-by: George Melikov <mail at gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by:  Alexander Motin <mav at FreeBSD.org>
Sponsored by:   iXsystems, Inc.
Closes #16576
Closes #16605
DeltaFile
+8-7module/zfs/arc.c
+8-71 files

OpenZFS/src 0d77e73man/man4 zfs.4, module/zfs dsl_scan.c

Defer resilver only when progress is above a threshold

Restart a resilver from scratch, if the current one in progress is
below a new tunable, zfs_resilver_defer_percent (defaulting to 10%).

The original rationale for deferring additional resilvers, when there is
already one in progress, was to help achieving data redundancy sooner
for the data that gets scanned at the end of the resilver.

But in case the admin wants to attach multiple disks to a single vdev,
it wasn't immediately obvious the admin is supposed to run
`zpool resilver` afterwards to reset the deferred resilvers and start
a new one from scratch.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Pavel Snajdr <snajpa at snajpa.net>
Closes #15810 
DeltaFile
+44-19module/zfs/dsl_scan.c
+10-1tests/zfs-tests/tests/functional/replacement/resilver_restart_001.ksh
+7-0man/man4/zfs.4
+1-0tests/zfs-tests/include/tunables.cfg
+62-204 files

OpenZFS/src 3d0175d.github/workflows/scripts qemu-9-summary-page.sh

ZTS: Fix summary page creation

There are cases, where some needed files for the summary page aren't
created. Currently the whole Summary Page creation will fail then.
Sample run: https://github.com/openzfs/zfs/actions/runs/11148248072/job/30999748588

Fix this, by properly checking for existence of the needed files.

Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Rob Norris <robn at despairlabs.com>
Signed-off-by: Tino Reichardt <milky-zfs at mcmilk.de>
Closes #16599 
DeltaFile
+2-0.github/workflows/scripts/qemu-9-summary-page.sh
+2-01 files

OpenZFS/src 17a2b35cmd/zpool Makefile.am, cmd/zpool/compatibility.d openzfs-2.3

Update compatibility.d files

Add an openzfs-2.3 compatibility file for the next release.

While there are no compatibility difference between Linux and
FreeBSD for 2.3 symlinks for the -linux and -freebsd names are
created for any scripts expecting that convention.

Reviewed-by: Rob Norris <robn at despairlabs.com>
Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #16588 
DeltaFile
+45-0cmd/zpool/compatibility.d/openzfs-2.3
+4-1cmd/zpool/Makefile.am
+49-12 files