OpenZFS/src a10e552lib/libzfs libzfs.abi, module/os/linux/zfs zfs_uio.c

Adding Direct IO Support

Adding O_DIRECT support to ZFS to bypass the ARC for writes/reads.

O_DIRECT support in ZFS will always ensure there is coherency between
buffered and O_DIRECT IO requests. This ensures that all IO requests,
whether buffered or direct, will see the same file contents at all
times. Just as in other FS's , O_DIRECT does not imply O_SYNC. While
data is written directly to VDEV disks, metadata will not be synced
until the associated  TXG is synced.
For both O_DIRECT read and write request the offset and request sizes,
at a minimum, must be PAGE_SIZE aligned. In the event they are not,
then EINVAL is returned unless the direct property is set to always (see
below).

For O_DIRECT writes:
The request also must be block aligned (recordsize) or the write
request will take the normal (buffered) write path. In the event that
request is block aligned and a cached copy of the buffer in the ARC,

    [66 lines not shown]
DeltaFile
+351-289lib/libzfs/libzfs.abi
+395-0module/zfs/dmu_direct.c
+331-0tests/zfs-tests/tests/functional/direct/dio.kshlib
+231-88module/zfs/dbuf.c
+293-2module/os/linux/zfs/zfs_uio.c
+274-20module/zfs/zfs_vnops.c
+1,875-399105 files not shown
+5,989-726111 files

OpenZFS/src 1713aa7module/zfs ddt.c

Remove set but not used variable in ddt.c (#16522)

module/zfs/ddt.c:2612:6: error: variable 'total' set but not used

Signed-off-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
DeltaFile
+1-2module/zfs/ddt.c
+1-21 files

OpenZFS/src 308f7c2module/os/freebsd/zfs zfs_acl.c, module/os/linux/zfs zfs_acl.c

Fix an uninitialized data access (#16511)

zfs_acl_node_alloc allocates an uninitialized data buffer, but upstack
zfs_acl_chmod only partially initializes it.  KMSAN reported that this
memory remained uninitialized at the point when it was read by
lzjb_compress, which suggests a possible kernel memory disclosure bug.

The full KMSAN warning may be found in the PR.
https://github.com/openzfs/zfs/pull/16511

Signed-off-by:  Alan Somers <asomers at gmail.com>
Sponsored by:   Axcient
Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
DeltaFile
+1-1module/os/linux/zfs/zfs_acl.c
+1-1module/os/freebsd/zfs/zfs_acl.c
+2-22 files

OpenZFS/src 63253dbtests/test-runner/bin zts-report.py.in

zts-report: don't crash on non-UTF-8 chars in the log (#16497)

The report generator expects the log to be clean and tidy UTF-8. That
can be a problem if you use some of the verbose/debug test runner
options, which sends all sorts of weird output from arbitrary programs
to the log.

This just makes Python a little more relaxed about such things. It
shouldn't matter in practice, as those lines didn't match the test
result regex anyway, and are discarded immediately.


Sponsored-by: https://despairlabs.com/sponsor/

Signed-off-by: Rob Norris <robn at despairlabs.com>
Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
DeltaFile
+1-1tests/test-runner/bin/zts-report.py.in
+1-11 files

OpenZFS/src 88433e6lib/libspl/include/sys types32.h

sys/types32.h: Remove struct timeval32 from libspl's header (#16491)

macOS Sequoia's sys/sockio.h, as included by various bootstrap tools
whilst building FreeBSD, has started to include net/if.h, which then
includes sys/_types/_timeval32.h and provide a conflicting definition
for struct timeval32. Since this type is entirely unused within OpenZFS,
simply delete the type rather than adding in some kind of OS detection.

This fixes building FreeBSD on macOS Sequoia (Beta).

Signed-off-by: Jessica Clarke <jrtc27 at jrtc27.com>
Reviewed-by: Rob Norris <rob.norris at klarasystems.com>
Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
DeltaFile
+0-5lib/libspl/include/sys/types32.h
+0-51 files

OpenZFS/src 8be2f4cmodule/zfs zio.c

zio_resume: log when unsuspending the pool (#16485)

When reviewing logs after a failure, its useful to see where
unsuspend/resume was requested.


Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.

Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
DeltaFile
+5-1module/zfs/zio.c
+5-11 files

OpenZFS/src 5c67820lib/libzstd Makefile.am

libzstd: also build with LIBZPOOL_CPPFLAGS

libzstd now also allocates its own abd_t, and so has the same issue as
zstream did, so this applies the same workaround: compile it with
ZFS_DEBUG. See 92fca1c2d.

This looks weird, because libzstd doesn't appear to look related to the
ZFS kernel, but there is already a cross-dependency there: zstd needs
zfs_lz4_compress, and zfs needs zfs_zstd_compress (and others), so the
two can never really be separated without more work. Another job for
another time.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Mark Maybee <mmaybee at delphix.com>
Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
Closes #16489 
DeltaFile
+2-0lib/libzstd/Makefile.am
+2-01 files

OpenZFS/src b109925cmd ztest.c, include/sys spa.h

spa_prop_get: require caller to supply output nvlist

All callers to spa_prop_get() and spa_prop_get_nvlist() supplied their
own preallocated nvlist (except ztest), so we can remove the option to
have them allocate one if none is supplied.

This sidesteps a bug in spa_prop_get(), where the error var wasn't
initialised, which could lead to the provided nvlist being freed at the
end.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Jorgen Lundman <lundman at lundman.net>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
Closes #16505 
DeltaFile
+43-57module/zfs/spa.c
+5-5module/zfs/zfs_ioctl.c
+3-2cmd/ztest.c
+2-2include/sys/spa.h
+53-664 files

OpenZFS/src 82ff9aainclude zfs_valstr.h, include/sys zio_priority.h zio.h

value strings: pretty printers for flags and enums

This adds zfs_valstr, a collection of pretty printers for bitfields and
enums. These are useful in debugging, logging and other display contexts
where raw values are difficult for the untrained (or even trained!) eye
to decipher.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
DeltaFile
+277-0module/zcommon/zfs_valstr.c
+84-0include/zfs_valstr.h
+51-0lib/libzfs/libzfs.abi
+4-0include/sys/zio_priority.h
+3-0include/sys/zio.h
+3-0include/sys/zio_impl.h
+422-05 files not shown
+427-011 files

OpenZFS/src 17dd66dcmd/zpool zpool_main.c

zpool events: expand value strings for ZIO error values

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
DeltaFile
+23-1cmd/zpool/zpool_main.c
+23-11 files

OpenZFS/src d4d7945cmd/zdb zdb.c, cmd/zpool zpool_main.c

Add DDT prune command

Requires the new 'flat' physical data which has the start
time for a class entry.

The amount to prune can be based on a target percentage of
the unique entries or based on the age (i.e., every entry
older than N days).

Sponsored-by: Klara, Inc.
Sponsored-by: iXsystems, Inc.
Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Don Brady <don.brady at klarasystems.com>
Closes #16277
DeltaFile
+421-53module/zfs/ddt.c
+89-0cmd/zpool/zpool_main.c
+55-12lib/libzfs/libzfs.abi
+45-10cmd/zdb/zdb.c
+48-4include/sys/ddt_impl.h
+50-0module/zfs/zfs_ioctl.c
+708-7915 files not shown
+905-8521 files

OpenZFS/src 4a4f7b0module/zfs ddt.c

zdb: rework dedup accounting for log, quota and prune

The simplest thing first: add the FDT and log objects to the list of
objects to be considered when checking for leaks.

The rest is based on a conceptual change in all of this patch stack: a
block on disk with a 'D' bit is not necessarily in the DDT at all
(pruned), or in the DDT ZAPs (still on the log).

As such, walking the DDT up front is difficult (for all the reasons that
walking an unflushed log is difficult) and not really useful, since it's
not a reflection of what's on disk anyway.

Instead, we rework things here to be more like the BRT checks. When we
see a dedup'd block, we look it up in the DDT, consume a refcount, and
for the second-or-later instances, count them as duplicates.

Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>

    [6 lines not shown]
DeltaFile
+3-0module/zfs/ddt.c
+3-01 files

OpenZFS/src bf8c61fmodule/os/freebsd/zfs sysctl_os.c

Remove unused sysctl node

PR #14953 removed vdev-level read cache but accidentally left this
sysctl node behind.

Reviewed-by: Rich Ercolani <rincebrain at gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Signed-off-by: Seth Hoffert <seth.hoffert at gmail.com>
Closes #16493 
DeltaFile
+0-1module/os/freebsd/zfs/sysctl_os.c
+0-11 files

OpenZFS/src cd42e99man/man4 zfs.4, module/zfs arc.c

Enable L2 cache of all (MRU+MFU) metadata but MFU data only

`l2arc_mfuonly` was added to avoid wasting L2 ARC on read-once MRU
data and metadata. However it can be useful to cache as much
metadata as possible while, at the same time, restricting data
cache to MFU buffers only.

This patch allow for such behavior by setting `l2arc_mfuonly` to 2
(or higher). The list of possible values is the following:
0: cache both MRU and MFU for both data and metadata;
1: cache only MFU for both data and metadata;
2: cache both MRU and MFU for metadata, but only MFU for data.

Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Gionatan Danti <g.danti at assyoma.it>
Closes #16343 
Closes #16402 
DeltaFile
+10-4man/man4/zfs.4
+8-3module/zfs/arc.c
+18-72 files

OpenZFS/src baa5031. META

Tag zfs-2.2.6

META file and changelog updated.

Signed-off-by: Tony Hutter <hutter2 at llnl.gov>
DeltaFile
+1-1META
+1-11 files

OpenZFS/src b3b7491cmd Makefile.am, cmd/raidz_test Makefile.am

build: rename FORCEDEBUG_CPPFLAGS to LIBZPOOL_CPPFLAGS

This is just a very small attempt to make it more obvious that these
flags aren't optional for libzpool-using programs, by not making it seem
like there's an option to say "well, I don't _want_ to force debugging".

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Allan Jude <allan at klarasystems.com>
Reviewed-by: Rich Ercolani <rincebrain at gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
Issue #16476
Closes #16477
DeltaFile
+4-1config/Rules.am
+2-2cmd/Makefile.am
+1-1cmd/zstream/Makefile.am
+1-1lib/libzpool/Makefile.am
+1-1cmd/zdb/Makefile.am
+1-1cmd/raidz_test/Makefile.am
+10-71 files not shown
+11-87 files

OpenZFS/src 92fca1ccmd/zstream Makefile.am

zstream: build with debug to fix stack overruns

abd_t differs in size depending on whether or not ZFS_DEBUG is set. It
turns out that libzpool is built with FORCEDEBUG_CPPFLAGS, which sets
-DZFS_DEBUG, and so it always has a larger abd_t with extra debug
fields, regardless of whether or not --enable-debug is set.

zdb, ztest and zhack are also all built with FORCEDEBUG_CPPFLAGS, so had
the same idea of the size of abd_t, but zstream was not, and used the
"smaller" abd_t. In practice this didn't matter because it never used
abd_t directly.

This changed in b4d81b1a6, zstream was switched to use stack ABDs for
compression. When built with --enable-debug, zstream implicitly gets
ZFS_DEBUG, and everything was fine. Productions builds without that flag
ends up with the smaller abd_t, which is now mismatched with libzpool,
and causes stack overruns in zstream recompress.

The simplest fix for now is to compile zstream with FORCEDEBUG_CPPFLAGS

    [10 lines not shown]
DeltaFile
+2-0cmd/zstream/Makefile.am
+2-01 files

OpenZFS/src 50b32cbcmd/zed/agents zfs_diagnosis.c, module/zfs zfs_fm.c

fm: pass io_flags through events & zed as uint64_t

In 4938d01db (#14086) zio_flag_t was converted from an enum (generally
signed 32-bit) to a uint64_t. The corresponding change wasn't made to
the error reporting subsystem, limiting the error flags being delivered
to zed to 32 bits. This bumps the whole pipeline to use uint64s.

A tiny bit of compatibility is added for newer zed working agsinst an
older kernel module, because its easy to do and misdetecting
scrub/resilver errors and taking action is potentially dangerous. Making
it work for new kernel modules against older zed seems to be far more
invasive for far less benefit, so I have not.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Alexander Motin <mav at FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
Closes #16469 
DeltaFile
+12-3cmd/zed/agents/zfs_diagnosis.c
+1-1module/zfs/zfs_fm.c
+13-42 files

OpenZFS/src 73866cfmodule/os/linux/spl spl-thread.c

Fix issig() to check signal_pending after dequeue SIGSTOP/SIGTSTP

When process got SIGSTOP/SIGTSTP, issig() dequeue them and return 0.
But process could still have another signal pending after dequeue. So,
after dequeue, check and return 1, if signal_pending.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Jitendra Patidar <jitendra.patidar at nutanix.com>
Closes #16464 
DeltaFile
+7-0module/os/linux/spl/spl-thread.c
+7-01 files

OpenZFS/src 2ca1515module/icp/algs/sha2 sha256_impl.c sha512_impl.c, module/icp/asm-arm/sha2 sha512-armv7.S sha256-armv7.S

module/icp/asm-arm/sha2: enable non-SIMD asm kernels on armv5/6

My merged pull request #15557 fixes compilation of sha2 kernels on arm
v5/6. However, the compiler guards only allows sha256/512_armv7_impl to
be used when __ARM_ARCH > 6. This patch enables these ASM kernels on all
arm architectures. Some compiler guards are adjusted accordingly to
avoid the unnecessary compilation of SIMD (e.g., neon, armv8ce) kernels
on old architectures.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Shengqi Chen <harry-chen at outlook.com>
Closes #15623 
DeltaFile
+13-9module/icp/algs/sha2/sha256_impl.c
+8-11module/icp/algs/sha2/sha512_impl.c
+3-1module/icp/asm-arm/sha2/sha512-armv7.S
+3-1module/icp/asm-arm/sha2/sha256-armv7.S
+27-224 files

OpenZFS/src bce36e2module/icp/asm-arm/sha2 sha256-armv7.S sha512-armv7.S

module/icp/asm-arm/sha2: auto detect __ARM_ARCH

This patch uses __ARM_ARCH set by compiler (both
GCC and Clang have this) whenever possible instead
of hardcoding it to 7. This change allows code to
compile on earlier ARM architectures such as armv5te.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Shengqi Chen <harry-chen at outlook.com>
Closes #15557
DeltaFile
+5-2module/icp/asm-arm/sha2/sha256-armv7.S
+5-2module/icp/asm-arm/sha2/sha512-armv7.S
+10-42 files

OpenZFS/src d8fa32amodule/os/linux/zfs zvol_os.c

linux/zvol_os: tidy and document queue limit/config setup

It gets hairier again in Linux 6.11, so I want some actual theory of
operation laid out for next time.

Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <robn at despairlabs.com>
Sponsored-by: https://despairlabs.com/sponsor/
Closes #16400
DeltaFile
+38-7module/os/linux/zfs/zvol_os.c
+38-71 files

OpenZFS/src 88a5ee0tests/zfs-tests/tests/functional/cli_root/zfs_copies zfs_copies.kshlib

ZTS: fix zfs_copies_006_pos test on Ubuntu 20.04 (#16409)

This test was failing before:
- FAIL cli_root/zfs_copies/zfs_copies_006_pos (expected PASS)

Signed-off-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: George Melikov <mail at gmelikov.ru>
DeltaFile
+2-0tests/zfs-tests/tests/functional/cli_root/zfs_copies/zfs_copies.kshlib
+2-01 files

OpenZFS/src 0465fbetests/zfs-tests/tests/functional/history history.cfg

ZTS: fix history_007_pos test on Ubuntu 24.04 (#16410)

The timezone "US/Mountain" isn't supported on newer linux versions.
Using the correct timezone "America/Denver" like it's done in FreeBSD
will fix this. Older Linux distros should behave also okay with this.

Signed-off-by: Tino Reichardt <milky-zfs at mcmilk.de>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: George Melikov <mail at gmelikov.ru>
DeltaFile
+1-5tests/zfs-tests/tests/functional/history/history.cfg
+1-51 files

OpenZFS/src a99a379contrib/bash_completion.d Makefile.am .gitignore, rpm/generic zfs.spec.in

contrib: link zpool to zfs in bash-completion (#16376)

Currently user won't have completion of `zpool` command until they
trigger completion of `zfs` first. This patch adds a link to `zfs`,
thus user can use both to initialize the completion.

Fixes: #16320

Signed-off-by: Shengqi Chen <harry-chen at outlook.com>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Reviewed-by: Rob Norris <rob.norris at klarasystems.com>
Reviewed-by: Tino Reichardt <milky-zfs at mcmilk.de>
DeltaFile
+8-4contrib/bash_completion.d/Makefile.am
+1-0rpm/generic/zfs.spec.in
+1-0contrib/bash_completion.d/.gitignore
+10-43 files

OpenZFS/src c60df6amodule/os/linux/zfs zvol_os.c

linux/zvol_os: fix zvol queue limits initialization

zvol queue limits initialization depends on `zv_volblocksize`, but it is
initialized later, leading to several limits being initialized with
incorrect values, including `max_discard_*` limits. This also causes
`blkdiscard` command to consistently fail, as `blk_ioctl_discard` reads
`bdev_max_discard_sectors()` limits as 0, leading to failure. The fix is
straightforward: initialize `zv->zv_volblocksize` early, before setting
the queue limits. This PR should fix `zvol/zvol_misc/zvol_misc_trim`
failure on recent PRs, as the test case issues `blkdiscard` for a zvol.
Additionally, `zvol_misc_trim` was recently enabled in `6c7d41a`,
which is why the issue wasn't identified earlier.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Ameer Hamza <ahamza at ixsystems.com>
Closes #16454 
DeltaFile
+4-3module/os/linux/zfs/zvol_os.c
+4-31 files

OpenZFS/src 6be8bf5lib/libzfs libzfs_pool.c, module/zfs zfs_ioctl.c

zpool: Provide GUID to zpool-reguid(8) with -g (#16239)

This commit extends the zpool-reguid(8) command with a -g flag, which
allows the user to specify the GUID to set.

This change also adds some general tests for zpool-reguid(8).

Sponsored-by: Wasabi Technology, Inc.
Sponsored-by: Klara, Inc.

Signed-off-by: Mateusz Piotrowski <0mp at FreeBSD.org>
Reviewed-by: Rob Norris <rob.norris at klarasystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
DeltaFile
+73-0tests/zfs-tests/tests/functional/cli_root/zpool_reguid/zpool_reguid_001_pos.ksh
+60-0tests/zfs-tests/tests/functional/cli_root/zpool_reguid/zpool_reguid_002_neg.ksh
+37-4lib/libzfs/libzfs_pool.c
+34-0tests/zfs-tests/tests/functional/cli_root/zpool_reguid/setup.ksh
+32-0tests/zfs-tests/tests/functional/cli_root/zpool_reguid/cleanup.ksh
+29-1module/zfs/zfs_ioctl.c
+265-510 files not shown
+342-1616 files

OpenZFS/src 2420ee6module/os/linux/spl spl-taskq.c

spl-taskq: fix task counts for delayed and cancelled tasks

Dispatched delayed tasks were not added to tasks_total, and cancelled
tasks were not removed. This notably could make tasks_total go to
UNIT64_MAX, but just generally meant the count could be wrong. So lets
not!

Sponsored-by: Klara, Inc.
Sponsored-by: Syneto
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
Closes #16473 
DeltaFile
+2-0module/os/linux/spl/spl-taskq.c
+2-01 files

OpenZFS/src 34118eacmd mount_zfs.c, module/os/linux/zfs zfs_ctldir.c

Make mount.zfs(8) calling zfs_mount_at for legacy mounts as well

Commit 329e2ffa4bca456e65c3db7f5c5c04931c551b61 has made mount.zfs(8) to
call libzfs function 'zfs_mount_at', in order to propagate dataset
properties into mount options. This fix however, is limited to a special
use case where mount.zfs(8) is used in initrd with option '-o zfsutil'.
If either initrd or the user need to use mount.zfs(8) to mount a file
system with 'mountpoint' set to 'legacy', '-o zfsutil' can't be used and
the original issue #7947 will still happen.

Since the existing code already excluded the possibility of calling
'zfs_mount_at' when it was invoked as a helper program from zfs(8), by
checking 'ZFS_MOUNT_HELPER' environment variable, it makes no sense to
avoid calling 'zfs_mount_at' without '-o zfsutil'.

An exception however, is when mount.zfs(8) was invoked with '-o remount'
to update the mount options for an existing mount point. In this case
call mount(2) directly without modifying the mount options passed from
command line.

    [14 lines not shown]
DeltaFile
+4-4module/os/linux/zfs/zfs_ctldir.c
+2-3cmd/mount_zfs.c
+6-72 files

OpenZFS/src a537d90cmd/zstream zstream_decompress.c

zstream decompress: fix decompress size and output

This was incorrectly using the compressed length for the size of the
decompress buffer, and quietly doing nothing if the decompressor refused
to decompress the block because there wasn't enough space.

After that, it wasn't correctly rewriting the record to indicate
"not compressed".

So that's fixed now. Sigh.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Signed-off-by: Rob Norris <rob.norris at klarasystems.com>
DeltaFile
+19-12cmd/zstream/zstream_decompress.c
+19-121 files