NAS-142994 / 26.0.0-RC.1 / add zfs.resource.create (by yocalebo) (#19584)
This adds zfs.resource.create, a from scratch replacement for
pool.dataset.create built on the three layer design already used by
destroy and query. The biggest simplification is in what we accept from
the API consumer. Instead of uppercase enum fields, INHERIT sentinel
strings, a sparse flag, and a translation table mapping api names to
real names, the consumer now sends native ZFS property names with
verbatim CLI values and we hand them straight to libzfs, so an omitted
property simply inherits and the returned entry shows what ZFS actually
canonicalized. The allowed property set from pool.dataset is carried
over as a single frozenset, and everything outside it, including the
encryption and sharing families, is denied with a message pointing at
the right API. Encryption roots are created through a typed sub model
that takes exactly one of a hex key, a passphrase, or generate_key,
derives keyformat itself, persists hex keys for the unlock and KMIP
flows, and never lets key material travel through generic properties.
All of the old product guardrails were carried over as small explicit
rule functions in create_rules.py, covering the thick volume 80 percent
[13 lines not shown]
[SDAG][NVPTX] Support cache hints on atomic operations (#214918)
Support cache hints on atomic loads/stores, these have the same support
as normal loads/stores.
Support cache hints on atomicrmw. These will drop everything except for
.level::cache_hint.
Cmpxchg doesn't support cache hints, should drop all.
AI assisted
AMDGPU: Move flat work group size constants to AMDGPUTargetParser (#220346)
getMinFlatWorkGroupSize and getMaxFlatWorkGroupSize are constants that
do not depend on the subtarget. Move them from IsaInfo to
AMDGPUTargetParser so they can be queried without an MCSubtargetInfo.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
NAS-142994 / 27.0.0-BETA.1 / add zfs.resource.create (#19580)
This adds zfs.resource.create, a from scratch replacement for
pool.dataset.create built on the three layer design already used by
destroy and query. The biggest simplification is in what we accept from
the API consumer. Instead of uppercase enum fields, INHERIT sentinel
strings, a sparse flag, and a translation table mapping api names to
real names, the consumer now sends native ZFS property names with
verbatim CLI values and we hand them straight to libzfs, so an omitted
property simply inherits and the returned entry shows what ZFS actually
canonicalized. The allowed property set from pool.dataset is carried
over as a single frozenset, and everything outside it, including the
encryption and sharing families, is denied with a message pointing at
the right API. Encryption roots are created through a typed sub model
that takes exactly one of a hex key, a passphrase, or generate_key,
derives keyformat itself, persists hex keys for the unlock and KMIP
flows, and never lets key material travel through generic properties.
All of the old product guardrails were carried over as small explicit
rule functions in create_rules.py, covering the thick volume 80 percent
[7 lines not shown]
Add middleware support for LIO ALUA HA
Wire up the middleware side of LIO ALUA high-availability: load
lio_ha.ko with per-node addresses on service start, manage ALUA
state across failover events, clean up STANDBY configfs on pool
export, and add pre-flight validation that targets have static
initiator ACLs before ALUA can be enabled.
For each target, create a portal-less phantom TPG carrying the peer
node's controller group so that a single RTPG response from any
connected port lists both ALUA groups. Write tpgt_N/rtpi explicitly
before enable so that relative target port IDs in RTPG match the
tag formula (portal.tag on Node A, portal.tag + 32000 on Node B)
rather than being auto-assigned sequentially by the kernel.
ALUA group states are driven by role and ha_state:
MASTER + synced local=OPTIMIZED remote=NONOPTIMIZED
MASTER + connected local=OPTIMIZED remote=TRANSITIONING
[4 lines not shown]
[lldb] Drop the trailing separator from the qWasmGlobal instance suffix (#220338)
The instance suffix was spelled ";instance:<id>;", which ends a packet
with a separator that separates nothing. Spell it ";instance:<id>" and
avoid the redundant semicolon.
security/vuxml: Document remaining Erlang/OTP vulnerabilities
Upstream published 16 advisories alongside OTP 29.0.6, 28.5.0.6 and
27.3.4.17. CVE-2026-75538 already had an entry; add a combined one for
the other 15, which share the same affected packages and fixed versions.
Most are in the inets httpd and httpc implementations: HTTP request
smuggling, two mod_auth authentication bypasses and several denial of
service issues, plus unbounded integer conversion in stdlib, snmp and
eldap.
Also add the now-published GHSA reference to the CVE-2026-75538 entry.
[SandboxVectorizer] Hoist getInsertPointAfterInstrs into VecUtils
Move BottomUpVec.cpp's file-local getInsertPointAfterInstrs() into
VecUtils, next to the getLowest()/getLastPHIOrSelf() primitives it's
built from. It has no BottomUpVec-specific state; the next commit adds a
second caller in LoadStoreVec.
Not hoisting BottomUpVec::createPack() itself here: it asserts a single
common scalar type (VecUtils::getCommonScalarType), which doesn't fit
LoadStoreVec's mixed-type ("enable-diff-types") requirement. That needs
its own extended packer, kept local to LoadStoreVec.cpp rather than
force-fitting the shared version.
No functional change: check-llvm Transforms/SandboxVectorizer passes
(28/28).
Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
[Clang] Fix a number of issues involving expansion statements (#217110)
This fixes a number of problems around expansion statements, most of
which arise from the fact that we check if `CurContext` is a
`FunctionDecl` (which it isn't inside of an expansion statement) and
then complain that we're not inside a function (even though we are).
I also updated `DeclContext::isFunctionOrMethod()` to return true for
`CXXExpansionStmtDecl`. That helper already does this for other
`DeclContext`s that aren’t functions or Objective-C methods, but which
to my understanding can only occur in one (e.g. `CapturedDecl` is an
example of this I believe).
Fix `fp128` reaching `llvm_unreachable` on 32-bit PowerPC (#216613)
`fp128` is a legal type that is passed in vector registers when `vsx` is
enabled on 32-bit PowerPC: the switch statement didn't account for that,
causing an LLVM assertion.
Fixes #213355
cc @folkertdev
databases/couchdb3: Resolve bundled OTP versions dynamically in PLIST_SUB
The release bundles erts and 13 OTP applications from
lang/erlang-runtime28, and pkg-plist pinned each of their versioned
directory names. Six of the last eight plist commits were pure OTP
rename churn, the largest touching 610 lines, while the 3.5.2 update
itself touched 23.
Derive the versions from the installed runtime at plist-generation time
instead. The package file list is unchanged: resolving the tokenized
plist with the versions this build staged reproduces the previous
pkg-plist byte for byte, so no PORTREVISION bump is needed.
An erlang-runtime28 update now needs only a PORTREVISION bump. Note
this reads ${LOCALBASE}/lib/erlang28 rather than the staged release,
because generate-plist runs before do-install; it holds as long as the
release copies erts and the OTP applications unmodified.
CouchDB's own rebar dependencies stay pinned deliberately - they move
[6 lines not shown]
[AMDGPU][SIInsertWaitcnts] Fix soft wait removal with loop-carried deps
The code that checked if a soft waitcnt (such as the one insterted by
a release fence on LDS) was redundant didn't correctly account for the
fact that that, for example, the previous iteration of a loop could
have introduced memory traffic that needs to be waited on. This bug
appeared to be fairly rare in practice (probably due to the
instruction scheduler shuffling around code in t bad form) but it can
happen.
The fix is that, instad of immediately erasing "redundant" waits, we
add them to a set of waits to be erased, and then remove them from the
set if they prove to be truly redundant.
This has the side effect of fixing a correctness issue around the CAS
loops we emit on gfx1250 - the global_inv we emit after the
`s_loadcnt 0x0` is itself a `loadcnt`-able event, and so needs to be
forced to completion before the next iteration of the CAS loop.
[5 lines not shown]
imapfilter: Update to 2.8.5. From Kogule Ryo in PR pkg/60582
IMAPFilter 2.8.5 - Mar 8, 2026
- Re-added OAuth2 example in the sample extend file
IMAPFilter 2.8.4 - Mar 7, 2026
- Bug fix; minor incompatibility with Lua 5.5
IMAPFilter 2.8.3 - Apr 27, 2025
- Include body transfer encoding in fetch_structure() return value.
- Bug fix; minor incompatibility with Lua 5.3 and 5.4
IMAPFilter 2.8.2 - Dec 26, 2023
- Add IMAP support for UTF-8 (RFC 6855) when "charset" is set to "UTF-8"
- Don't use FETCH FAST macro use for better compatibility
- Bug fix; recovery mechanism error on Lua 5.1
IMAPFilter 2.8.1 - Jan 8, 2023
- Add support for non-write actions on read-only mailboxes.
[14 lines not shown]
[libc++] Add _LIBCPP_NO_SANITIZE for std::__assume_aligned (#220296)
std::assume_aligned takes void* from __builtin_assume_aligned and
converts it _Tp* that causes cfi-unrelated-cast to consider it a
downcast leading to CFI checks. Since std::find_if calls
std::assume_aligned on __last, it will lead to a CFI check that
dereferences __last causing a failure. Based on discussion, we can just
add _LIBCPP_NO_SANITIZE for cfi-unrelated-cast because the check rejects
well-defined behavior.
Fix: https://github.com/llvm/llvm-project/issues/219306