FreeNAS/freenas c0badbdsrc/middlewared/middlewared/plugins/pool_ snapshot.py, src/middlewared/middlewared/plugins/zfs rename_promote_clone_impl.py snapshot_create_impl.py

Make ZFSPathInvalidException take a path like its siblings

The class took only a message while every other path exception in the
file takes the path first. It now takes the path and an optional reason
and builds the message from both, so callers keep using e.message and
no longer repeat the path in their own text. Both raise sites pass the
path and a short reason.

pool.snapshot.create now catches it and raises a ValidationError instead
of leaking the raw exception when every dataset is excluded.
DeltaFile
+10-6src/middlewared/middlewared/plugins/zfs/exceptions.py
+1-3src/middlewared/middlewared/plugins/zfs/snapshot_create_impl.py
+2-2src/middlewared/middlewared/plugins/zfs/resource_ops.py
+4-0src/middlewared/middlewared/plugins/pool_/snapshot.py
+1-1src/middlewared/middlewared/plugins/zfs/rename_promote_clone_impl.py
+18-125 files

FreeNAS/freenas 31a316bsrc/middlewared/middlewared/plugins/zfs snapshot_count_impl.py

Account for `CLOCK_REALTIME_COARSE`
DeltaFile
+4-1src/middlewared/middlewared/plugins/zfs/snapshot_count_impl.py
+4-11 files

FreeNAS/freenas 3f4418fsrc/middlewared/middlewared/plugins/truenas_s3 bucket_crud.py, tests/api2 test_s3_bucket.py

NAS-143800 / 26.0.0-RC.1 / Decouple snapshot versions from S3 versions (by anodos325) (#19751)

Recent changes in licensing setup made it so that the versions field
requires license in order to be modified. This commit decouples
ZFS-snapshot based versioning from the S3 protocol versioning feature so
that community / non-licensed S3 consumers can still choose to surface
previous versions of objects that are contained in ZFS snapshots to S3
clients.

Original PR: https://github.com/truenas/middleware/pull/19748

Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
DeltaFile
+28-4tests/api2/test_s3_bucket.py
+0-5src/middlewared/middlewared/plugins/truenas_s3/bucket_crud.py
+28-92 files

FreeNAS/freenas 85beb17src/middlewared/middlewared/plugins/truenas_s3 bucket_crud.py, tests/api2 test_s3_bucket.py

NAS-143800 / 26.0.0 / Decouple snapshot versions from S3 versions (by anodos325) (#19750)

Recent changes in licensing setup made it so that the versions field
requires license in order to be modified. This commit decouples
ZFS-snapshot based versioning from the S3 protocol versioning feature so
that community / non-licensed S3 consumers can still choose to surface
previous versions of objects that are contained in ZFS snapshots to S3
clients.

Original PR: https://github.com/truenas/middleware/pull/19748

Co-authored-by: Andrew Walker <andrew.walker at truenas.com>
DeltaFile
+28-4tests/api2/test_s3_bucket.py
+0-5src/middlewared/middlewared/plugins/truenas_s3/bucket_crud.py
+28-92 files

LLVM/project 247db24clang/docs OverflowBehaviorTypes.md, clang/include/clang/Basic DiagnosticSemaKinds.td

[Clang] Reject overflow behavior types on _Atomic (#222179)

atomic read-modify-write operations aren't instrumented for overflow. `counter++` on an `_Atomic` object lowers to a single `atomicrmw`, and this is true for plain atomic types under `-fsanitize=signed-integer-overflow` too.

That's a problem for `__ob_trap`, which is supposed to be checked no matter what the global flags say:

```c
  typedef int __ob_trap trapping_int;
  _Atomic trapping_int counter;
  int x = counter + 1; // checked
  counter++;           // not checked
```

A guarantee that only holds for some expressions is worse than none, so reject the combination outriht. Let's also reject `__ob_wrap` too so the rule doesn't depend on the behavior kind... wrap has minimal use here anyways.

Applying an OBT specifier over an atomic type was already an error, though it unhelpfully reported `_Atomic(int)` as a non-integer type even though it is. Applying `_Atomic` over an existing OBT was accepted, which is where the unchecked read-modify-write came from... this was a bug that is now fixed because we are no longer trying to apply OBT on top of `_Atomic`. This is all made more clear by better diagnostics too :)

We can relax this later if someone needs it. I think instrumenting checked atomic rmws would mean lowering to a cmpxchg/CAS loop.

Assisted-by: claude
Signed-off-by: Justin Stitt <justinstitt at google.com>
DeltaFile
+47-0clang/test/Sema/overflow-behavior-atomic.c
+39-0clang/docs/OverflowBehaviorTypes.md
+18-1clang/lib/Sema/SemaType.cpp
+5-2clang/include/clang/Basic/DiagnosticSemaKinds.td
+109-34 files

FreeBSD/ports ec0ae3ftextproc/libkolabxml Makefile

textproc/libkolabxml: Mark deprecated

(cherry picked from commit 107d1fa182f91254cec8809ec2e3fbe2f9b91d1a)
DeltaFile
+4-1textproc/libkolabxml/Makefile
+4-11 files

FreeBSD/ports 1e54ec4graphics/py-opencv-python-headless Makefile, graphics/py-opencv-python-headless/files patch-opencv_modules_core_include_opencv2_core_vsx__utils.hpp patch-opencv_modules_python_test_tests_common.py

graphics/py-opencv-python-headless: update 4.13.0.92 → 5.0.0.93
DeltaFile
+33-0graphics/py-opencv-python-headless/files/patch-opencv_modules_gapi_cmake_DownloadADE.cmake
+16-8graphics/py-opencv-python-headless/Makefile
+23-0graphics/py-opencv-python-headless/files/patch-opencv_modules_videoio_src_cap_ffmpeg_impl.hpp
+22-0graphics/py-opencv-python-headless/files/patch-opencv_modules_videoio_src_cap_ffmpeg_hw.hpp
+5-14graphics/py-opencv-python-headless/files/patch-opencv_modules_core_include_opencv2_core_vsx__utils.hpp
+19-0graphics/py-opencv-python-headless/files/patch-opencv_modules_python_test_tests_common.py
+118-222 files not shown
+138-328 files

FreeBSD/ports 107d1fatextproc/libkolabxml Makefile

textproc/libkolabxml: Mark deprecated
DeltaFile
+4-1textproc/libkolabxml/Makefile
+4-11 files

FreeNAS/freenas be2b3casrc/middlewared/middlewared/api/v27_0_0 s3.py, src/middlewared/middlewared/plugins/truenas_s3 bucket_crud.py

NAS-143800 / 27.0.0-BETA.1 / Decouple snapshot versions from S3 versions (#19748)

Recent changes in licensing setup made it so that the versions field
requires license in order to be modified. This commit decouples
ZFS-snapshot based versioning from the S3 protocol versioning feature so
that community / non-licensed S3 consumers can still choose to surface
previous versions of objects that are contained in ZFS snapshots to S3
clients.
DeltaFile
+28-4tests/api2/test_s3_bucket.py
+0-5src/middlewared/middlewared/plugins/truenas_s3/bucket_crud.py
+2-2src/middlewared/middlewared/api/v27_0_0/s3.py
+30-113 files

LLVM/project 37248daclang/docs ReleaseNotes.md, clang/lib/CodeGen ABIInfo.cpp

[Clang][ABI] Classify floating-point matrix types as homogeneous aggregates (#222429)

The `ABIInfo::isHomogeneousAggregate()` function did not have explicit
handling for `ConstantMatrixType` and so, by default, these types were
rejected as potential homogeneous aggregates.

This change adds handling for `ConstantMatrixType` and classifies such
matrix types depending on whether they otherwise meet the criteria.

Fixes: https://github.com/llvm/llvm-project/issues/222417

Assisted-by: Cursor / Grok 4.6
DeltaFile
+180-0clang/test/CodeGen/AArch64/matrix-hfa.c
+109-0clang/test/CodeGen/X86/matrix-vectorcall.c
+101-0clang/test/CodeGen/PowerPC/matrix-hfa.c
+100-0clang/test/CodeGen/ARM/matrix-hfa.c
+10-0clang/lib/CodeGen/ABIInfo.cpp
+7-0clang/docs/ReleaseNotes.md
+507-06 files

FreeBSD/ports fe61f81www/cinny Makefile distinfo

www/cinny: Update to 4.12.7
DeltaFile
+9-9www/cinny/pkg-plist
+3-3www/cinny/distinfo
+1-1www/cinny/Makefile
+13-133 files

LLVM/project 3f846cdllvm/lib/Target/AMDGPU AMDGPUPromoteAlloca.cpp, llvm/test/CodeGen/AMDGPU eliminate-frame-index-select.ll promote-alloca-homogeneous-struct.ll

Reland "[AMDGPU] PromoteAlloca: flatten homogeneous structs to vectors" (#221058)

This relands #217055

The original commit revealed a latent issue in eliminateFrameIndex in
SIRegisterInfo where SCC can be clobbered before reading it on
gfx900/gfx90a. This change itself has no known issues.
DeltaFile
+152-0llvm/test/CodeGen/AMDGPU/promote-alloca-homogeneous-struct.ll
+23-6llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
+6-1llvm/test/CodeGen/AMDGPU/eliminate-frame-index-select.ll
+181-73 files

LLVM/project fcc6118clang/lib/CodeGen CodeGenFunction.cpp, clang/lib/CodeGenUtils CodeGenUtils.cpp

[CIR][CodeGen] Implement target-features checking(CodeGenUtils!) (#223056)

This DOES move checking functions out of CodeGen and into CodeGenUtils
so both can use it.

This is a diagnostic for builtins/etc that is built in to classic
codegen. We have to implement it, because otherwise autoconfig thinks
that we support AVX without a flag, and thus causes us to fail builds
later on that now expect __AVX__/etc to be defined without enabling
them.
DeltaFile
+215-0clang/test/CIR/CodeGen/target-builtin-noerror.c
+118-0clang/lib/CodeGenUtils/CodeGenUtils.cpp
+6-108clang/lib/CodeGen/CodeGenFunction.cpp
+62-0clang/test/CIR/CodeGen/target-builtin-error-3.c
+50-0clang/test/CIR/CodeGen/target-features-error-2.c
+23-0clang/test/CIR/CodeGen/avx512-error.c
+474-10816 files not shown
+639-12122 files

LLVM/project 4cbd7f8mlir/include/mlir/Conversion/MathToEmitC MathToEmitC.h, mlir/lib RegisterAllExtensions.cpp

[mlir][emitc] Add a ConvertToEmitCPatternInterface for the math dialect (#223666)

MathToEmitC wasn't registered for `--convert-to-emitc`. This registers
an interface matching the other *ToEmitC interfaces.
DeltaFile
+23-0mlir/lib/Conversion/MathToEmitC/MathToEmitC.cpp
+3-0utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+3-0mlir/include/mlir/Conversion/MathToEmitC/MathToEmitC.h
+2-0mlir/test/Conversion/MathToEmitC/math-to-emitc.mlir
+2-0mlir/lib/RegisterAllExtensions.cpp
+2-0mlir/lib/Dialect/Math/IR/MathDialect.cpp
+35-02 files not shown
+37-08 files

FreeNAS/freenas 434a8aasrc/middlewared/middlewared/plugins/zfs rename_promote_clone_impl.py exceptions.py

NAS-143799 / 26.0.0 / Catch `ZFSPathInvalidException` (by themylogin) (#19749)

`create_snapshots_impl` raises an uncaught `ZFSPathInvalidException`
when exclude removes every candidate dataset.

Original PR: https://github.com/truenas/middleware/pull/19744

---------

Co-authored-by: themylogin <themylogin at gmail.com>
Co-authored-by: Caleb St. John <30729806+yocalebo at users.noreply.github.com>
DeltaFile
+3-1src/middlewared/middlewared/plugins/zfs/exceptions.py
+4-0src/middlewared/middlewared/plugins/zfs/snapshot_ops.py
+1-1src/middlewared/middlewared/plugins/zfs/rename_promote_clone_impl.py
+8-23 files

LLVM/project 1cc3b19llvm/lib/Analysis ValueTracking.cpp, llvm/lib/CodeGen/GlobalISel GISelValueTracking.cpp

[KnownFPClass] Add sign preserving deductions to `atan2(y, x)` (#223176)

`atan2(y, x)` should return the same sign as `y` (up to the denormal
mode):
- If `y >= +0.0`, then `atan2(y, x) >= +0.0`
- If `y <= -0.0`, then `atan2(y, x) <= -0.0`

AI Disclosure:
I used ChatGPT Codex (5.6 sol) to help write the tests.
DeltaFile
+438-40llvm/test/Transforms/Attributor/nofpclass-atan2.ll
+25-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-atan2.ll
+18-2llvm/lib/Support/KnownFPClass.cpp
+8-0llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
+8-0llvm/lib/Analysis/ValueTracking.cpp
+3-3llvm/unittests/CodeGen/GlobalISel/KnownFPClassTest.cpp
+500-456 files

FreeBSD/ports a4c7ef0net/cloudquery Makefile distinfo

net/cloudquery: update to version 6.42.3
DeltaFile
+5-5net/cloudquery/distinfo
+1-1net/cloudquery/Makefile
+6-62 files

LLVM/project 748bb12llvm/lib/Support KnownFPClass.cpp, llvm/test/Transforms/Attributor nofpclass-nan-fmul.ll nofpclass-fmul.ll

[KnownFPClass] Propagate non-`sNaN` for `fadd`/`fsub`, `fmul`, `fdiv`, and `fma` (#221876)

`fadd`, `fsub`, `fmul`, `fdiv`, and `fma` can only return `sNaN` if at
least one of their inputs are `sNaN`. This means that we can rule out
`sNaN` from the result if all of the arguments are known to never be
`sNaN`.

`sNaN` propagation for `frem` is handled in this PR:
https://github.com/llvm/llvm-project/pull/219303
DeltaFile
+159-15llvm/test/Transforms/Attributor/nofpclass-fma.ll
+144-4llvm/test/Transforms/Attributor/nofpclass-fadd-fsub.ll
+51-11llvm/test/Transforms/Attributor/nofpclass-fdiv.ll
+44-4llvm/test/Transforms/Attributor/nofpclass-fmul.ll
+12-12llvm/test/Transforms/Attributor/nofpclass-nan-fmul.ll
+18-3llvm/lib/Support/KnownFPClass.cpp
+428-492 files not shown
+437-588 files

LLVM/project c9f6b2eflang/test/Lower/OpenMP mismatched-bound-types.f90

[flang][test][NFC] Add OpenMP test for mismatched loop bound types (#221097)

Adds a regression test that lowering succeeds when an OpenMP loop mixes
bound types: the loop trip count comes from an integer(kind=INT64)
module
variable while the lower bound and step are i32 literals, so both are
converted to i64 before being passed through host_eval.
DeltaFile
+35-0flang/test/Lower/OpenMP/mismatched-bound-types.f90
+35-01 files

LLVM/project eaee844llvm/lib/Target/AMDGPU SIRegisterInfo.cpp, llvm/test/CodeGen/AMDGPU eliminate-frame-index-scalar-scc-clobber.mir

[AMDGPU] Prevent SCC clobber in frame index lowering in scaling path

eliminateFrameIndex has two lowering strategies, but only one has the proper handling for checking SCC-liveness to prevent clobbering. Unify them with a helper function to ensure both paths handle the same
DeltaFile
+68-4llvm/test/CodeGen/AMDGPU/eliminate-frame-index-scalar-scc-clobber.mir
+9-5llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+77-92 files

OpenBSD/ports L98PAHgmeta/tor-browser Makefile, www/tor-browser Makefile.inc

   Tor Browser: update to 15.0.23
VersionDeltaFile
1.118.2.8+6-6www/tor-browser/browser/distinfo
1.67.2.7+2-2www/tor-browser/noscript/distinfo
1.197.2.8+2-2www/tor-browser/browser/Makefile
1.124.2.8+2-2meta/tor-browser/Makefile
1.74.2.7+1-1www/tor-browser/noscript/Makefile
1.121.2.8+1-1www/tor-browser/Makefile.inc
+14-146 files

LLVM/project 4d4df58mlir/include/mlir/Dialect/LLVMIR LLVMOpBase.td LLVMOps.td, mlir/lib/Dialect/LLVMIR/IR LLVMDialect.cpp

[mlir][LLVM] Add ignore_denormal_mode UnitAttr to LLVM::AtomicRMWOp
DeltaFile
+22-5mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+8-7mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+8-0mlir/test/Dialect/LLVMIR/invalid.mlir
+7-0mlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
+0-6mlir/lib/Target/LLVMIR/Dialect/ROCDL/ROCDLToLLVMIRTranslation.cpp
+4-0mlir/test/Target/LLVMIR/Import/instructions.ll
+49-184 files not shown
+56-2210 files

FreeNAS/freenas a04501csrc/middlewared/middlewared/plugins account.py, src/middlewared/middlewared/plugins/filesystem_ perm_check.py

NAS-143402 / 27.0.0-BETA.1 / Stricter user SSH public key validation to match OpenSSH behavior (by themylogin) (#19726)

sshd opens the `authorized_keys` file as the user itself, so every
directory leading to the home directory has to
be traversable by the account.

On top of that `StrictModes` makes sshd refuse to use the file when the
home directory is world-writable or is
owned neither by the user nor by root.

A public key that is stored under any of those conditions silently never
authenticates anyone, so it should be rejected up front.

Original PR: https://github.com/truenas/middleware/pull/19652

Co-authored-by: themylogin <themylogin at gmail.com>
DeltaFile
+154-0tests/api2/test_account_ssh_key.py
+120-0src/middlewared/middlewared/plugins/account.py
+46-11src/middlewared/middlewared/plugins/filesystem_/perm_check.py
+320-113 files

LLVM/project ba5bdf2llvm/lib/Target/NVPTX NVPTXISelLowering.cpp, llvm/test/CodeGen/NVPTX atomicrmw-ignore-denormal-mode.ll

[NVPTX] Honor !atomic.ignore.denormal.mode on atomicrmw fadd

PTX atom.add has a fixed denormal behavior that the program cannot
control: atom.add.f32 flushes denormals on global memory but not on
shared, and atom.add.f16 never flushes. When that disagrees with the
function's denormal mode, the backend expands the atomic into a CAS loop
so the denormal behavior is preserved.

!atomic.ignore.denormal.mode says the denormal behavior of this
particular atomic does not matter, so use the native instruction even
when it disagrees. This is the same thing -nvptx-allow-ftz-atomics does,
except per-instruction instead of per-compilation, which lets a frontend
opt in only the operations it knows about -- notably CUDA's atomicAdd(),
which is defined in terms of atom.add.

Note that -nvptx-allow-ftz-atomics defaults to true, so the new behavior
is only observable with -nvptx-allow-ftz-atomics=false.

Co-authored-by: Artem Belevich <tra at google.com>
DeltaFile
+258-0llvm/test/CodeGen/NVPTX/atomicrmw-ignore-denormal-mode.ll
+11-3llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp
+269-32 files

LLVM/project 7100407clang/lib/CodeGen TargetInfo.cpp TargetInfo.h, clang/lib/CodeGen/TargetBuiltins NVPTX.cpp

[clang][NVPTX] Emit !atomic.ignore.denormal.mode for CUDA atomics

CUDA's atomicAdd() family is defined in terms of PTX atom.add, whose
denormal behavior is fixed by the hardware. Without any annotation the
backend has to assume the function's denormal mode must be honored and
expands these into CAS loops whenever the two disagree. Mark them with
!atomic.ignore.denormal.mode so the native instruction is used.

That covers the __nvvm_atom_*_add_gen_f builtins that atomicAdd(),
atomicAdd_block() and atomicAdd_system() are written in terms of, plus
C11/C++11 atomics under -fatomic-ignore-denormal-mode and the
[[clang::atomic(ignore_denormal_mode)]] attribute, which requires
teaching the NVPTX target about AtomicOptions.

The condition for when the metadata is meaningful is now shared with the
AMDGPU and SPIR-V targets in addAtomicIgnoreDenormalModeMetadata(). It
takes an AllowHalf flag because whether f16 denormals are observable is
target specific: PTX exposes no FTZ control for f16 operations, so
atom.add.f16 never flushes and the opt-in is meaningful there, whereas

    [3 lines not shown]
DeltaFile
+321-0clang/test/CodeGenCUDA/atomic-ignore-denormal-mode-nvptx.cu
+19-4clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp
+18-0clang/lib/CodeGen/TargetInfo.h
+15-0clang/lib/CodeGen/TargetInfo.cpp
+12-0clang/lib/CodeGen/Targets/NVPTX.cpp
+2-4clang/lib/CodeGen/Targets/SPIR.cpp
+387-85 files not shown
+402-1711 files

OpenBSD/ports EEO60ENmeta/tor-browser Makefile, www/tor-browser Makefile.inc

   Tor Browser: update to 15.0.23
VersionDeltaFile
1.132+6-6www/tor-browser/browser/distinfo
1.76+2-2www/tor-browser/noscript/distinfo
1.137+2-2meta/tor-browser/Makefile
1.83+1-1www/tor-browser/noscript/Makefile
1.215+1-1www/tor-browser/browser/Makefile
1.134+1-1www/tor-browser/Makefile.inc
+13-136 files

LLVM/project 8301c24clang/include/clang/Options Options.td, clang/lib/Driver/ToolChains Flang.cpp

[Flang] Keep -fkeep-inline-functions as an ignored option (#223733)

55221f7 removed the warning check for -fkeep-inline-functions and
-fno-keep-inline-functions from flang-f-opts.f90 after the test started
failing when the option was implemented for Clang in 28efe19.

The options are currently only supported by Clang, so keep
-fkeep-inline-functions and -fno-keep-inline-functions as unsupported
options for Flang and emit the appropriate warnings.
DeltaFile
+10-0clang/lib/Driver/ToolChains/Flang.cpp
+2-2clang/include/clang/Options/Options.td
+4-0flang/test/Driver/flang-f-opts.f90
+16-23 files

LLVM/project 03b0c43llvm/test/Transforms/AtomicExpand/AMDGPU expand-atomic-v2f16-agent.ll expand-atomic-f64-system.ll

[IR] Generalize !amdgpu.ignore.denormal.mode into !atomic.ignore.denormal.mode (#217585)

The !amdgpu.ignore.denormal.mode metadata tells the backend that an
atomicrmw fadd need not honor the function's denormal mode, so a native
atomic instruction whose denormal behavior is fixed in hardware may be
used instead of a CAS loop. Nothing about that is AMDGPU specific: NVPTX
has exactly the same problem with atom.add, whose FTZ behavior depends
on
the address space and cannot be controlled.

Promote it to a target independent fixed metadata kind,
!atomic.ignore.denormal.mode, and switch the AMDGPU, SPIR-V and OpenMP
producers and consumers over to it. Document it in LangRef, and point
AMDGPUUsage at that description rather than duplicating it.

Existing IR keeps working: AutoUpgrade renames the metadata on atomicrmw
instructions when parsing textual IR and when materializing bitcode. The
upgrade is deliberately scoped to atomicrmw rather than being applied to
every attachment of that name, since that is the only place the metadata

    [7 lines not shown]
DeltaFile
+84-84llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-agent.ll
+78-78llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f32-system.ll
+44-44llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-agent.ll
+43-43llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-rmw-fadd.ll
+41-41llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-f64-system.ll
+34-34llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-v2f16-agent.ll
+324-32460 files not shown
+689-64866 files

FreeNAS/freenas e178fc1src/middlewared/middlewared/plugins/zfs rename_promote_clone_impl.py exceptions.py

NAS-143799 / 27.0.0-BETA.1 / Catch `ZFSPathInvalidException` (#19744)

`create_snapshots_impl` raises an uncaught `ZFSPathInvalidException`
when exclude removes every candidate dataset.

---------

Co-authored-by: Caleb St. John <30729806+yocalebo at users.noreply.github.com>
DeltaFile
+3-1src/middlewared/middlewared/plugins/zfs/exceptions.py
+4-0src/middlewared/middlewared/plugins/zfs/snapshot_ops.py
+1-1src/middlewared/middlewared/plugins/zfs/rename_promote_clone_impl.py
+8-23 files

FreeNAS/freenas b538eee

Empty commit to create PR on github.

You should reset it
DeltaFile
+0-00 files