NAS-144955 / 28.0.0-BETA.1 / Unskip NFS bindip tests (#20085)
NFS bindip tests were always skipped in our Jenkins both in non-HA mode
and HA mode. The HA mode should theoretically have static IP, in
practice the test was still skipped.
Let's move it to sharing protocol tests which always have static IP on
both configurations.
Remove the license reconcile framework
This commit adds changes to delete the reconcile pass that re-rendered and restarted services on every license upload, along with the old usage probes, and replace the remaining ctdb, discovery, rc and cron reactions with owner hooks that act only when HA (or WebShare for rc) actually changed. ctdb is now only started if stopped, never restarted, so an upload that changes nothing no longer bounces ctdb on both HA nodes.
Allow loosening FEC, update profile and security settings without a license
This commit adds changes to refuse a FEC mode, the Mission Critical profile or a stricter security setting only when it is turned on or tightened, so saves that leave them unchanged or loosen them work while unlicensed, and to list them in the license alert.
Alert on KMIP, SPDK and directory-service login in use without a license
This commit adds changes to refuse extending KMIP to manage dataset keys or drive passwords while unlicensed and to list KMIP, the SPDK NVMe-oF backend and directory-service login in the license alert when they are in use without a license. None of them is ever switched off.
devel/wasi-*: deprecate LLVM 17 and 18 based ports
Deprecate the individual devel/wasi-compiler-rt1[78] and
devel/wasi-libcxx1[78] ports and the 17 and 18 flavors of
devel/wasi-libc.
Approved by: vishwin (maintainer, in concept)
Never cut SED handling on a license revoke
This commit adds changes so self-encrypting drives keep being probed, unlocked and repaired while SED is not licensed and SED credentials exist, and only new SED setups (an all-SED pool, setting up an uninitialised disk, a first disk or global password) need the license. Imported pools no longer get all_sed stored as False on unlicensed systems.
Keep S3 versioning served through a license revoke and refuse only widening audit
This commit adds changes to stop restarting S3 on every license change, record S3 versioning in license grace while s3 runs so the daemon keeps buckets writable until an admin restart or reboot, reload S3 on re-license, and refuse audit settings only when they widen. Lands together with the truenas_s3 change that asks for served entitlements.
Apply SMB block cloning and ZFS tiering license changes at the next config write
This commit adds changes to refuse a Veeam share or enabling tiering only when it is turned on, gate tier rewrite jobs and performance-tier assignments, resume tiering on re-license through a zfstierd reload, and replace the SMB and tier reconcile delegates with a cifs owner hook that reloads only on an HA change. smb update now passes the old share to validation, so home-share and share-name checks no longer compare an update against itself.
[CIR] Append the fenv interface to complex FP op traits
Use let append traits instead of extending the base trait list.
Assisted-by: Claude Code (Opus 5.5).
Serve RDMA through a license revoke until an NFS, iSCSI or NVMe-oF restart
This commit adds changes to add a grace-aware rdma.serving used by iSER, NVMe-oF and the NFS render, stop masking the stored NFS rdma flag, refuse only turning RDMA on or creating an RDMA port, and replace the NVMe-oF reconcile render with an owner hook that renders the running target only when HA changed or RDMA was granted.
[TableGen] Keep dumps when instantiating defs from a multiclass (#236438)
The Record copy constructor copied assertions but not dumps, so a dump
in the body of a def inside a multiclass, or inherited by it from a
superclass, was silently dropped from the defs instantiated by defm.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[CIR] Store nsw/nuw as an OverflowFlags bit enum and split out saturated add/sub
cir.add, cir.sub and cir.mul carried nsw and nuw as two separate unit
properties, and lowering mapped them to LLVM with an early return that
picked nuw over nsw, so an op with both flags lowered to `overflow<nuw>`
and lost nsw. cir.add and cir.sub also carried a `sat` flag that changed
the operation's result rather than adding a poison condition.
Store the flags as one OverflowFlags bit-enum property whose layout
matches mlir::LLVM::IntegerOverflowFlags, so lowering casts it directly
and keeps both flags. The property uses the default EnumProp syntax,
printed as `nuw`, `nsw` or `nuw|nsw`, so no custom parser or printer is
needed. cir.mul now shares the add/sub base class and so becomes Pure.
Saturating arithmetic moves to new cir.add.sat and cir.sub.sat ops, which
lower to the signed or unsigned saturation intrinsics by element type.
That leaves cir::OverflowBehavior only describing nsw/nuw, so the builder
takes cir::OverflowFlags instead.
[6 lines not shown]
Serve Fibre Channel through a license revoke until iscsitarget restarts
This commit adds changes to make fc.capable grace-aware, keep FC hosts wired and ports listed while FC targets exist so they stay editable, refuse only switching a target to FC, and replace the iSCSI reconcile render with an owner hook that renders the running target only when HA changed or FC/RDMA was granted.
[AMDGPU] Align FPTRUNC_ROUND_F32_F64_PSEUDO VGPR source operand (#236195)
The 64-bit VGPR source of FPTRUNC_ROUND_F32_F64_PSEUDO used the plain
VReg_64 class, while SIModeRegister lowers the pseudo to V_CVT_F32_F64_e32,
whose source must be even-aligned on subtargets that require aligned VGPRs.
Use VReg_64_AlignTarget so the pseudo already carries the alignment of the
instruction it becomes.
Co-Authored-By: Claude <noreply at anthropic.com>
---------
Co-authored-by: Claude <noreply at anthropic.com>
Co-authored-by: Jay Foad <jay.foad at gmail.com>
[AMDGPU] Enable SlotIndexes compaction by default
Add TargetRegisterInfo::shouldCompactSlotIndexes() so targets can opt
in to dropping dead SlotIndexes entries before greedy allocation, one
target at a time. An explicit -greedy-compact-slot-indexes still
overrides the target. Enable it for AMDGPU, where the leftover entries
skew live range priorities enough to cause heavy spilling.
Gate the NFS snapshot directory on license grace
This commit adds changes to render zfs_snapdir in exports only while NFS snapshot exposure is served (entitled or in grace), and to refuse expose_snapshots only when it is turned on, so shares that already expose snapshots stay editable while unlicensed. The dataset-root check now always runs.
[Clang][CodeGen] Don't crash on a struct inline asm output in a mask register
A struct register output with "=k" crashes when x86's
'adjustInlineAsmType' returned '<N x i1>' for "k". The conversion chain
then bitcast that vector to the struct type, which is invalid IR.
Fix this by casting the vector to an integer that's the same size as the
vector, then truncate it to the destination's size.
Fixes: 8d6e82d501cd ("[X86] Use vXi1 for `k` constraint in inline asm (#77733)")
Assisted-by: Claude Opus 5.5
Keep WebShare and TrueSearch running through a license revoke until restarted
This commit adds changes so WebShare and TrueSearch starts consult the grace-aware entitlement while enabling the service, enabling a share or switching search on stay strict, and the webshare unit is only enabled at boot when strictly licensed. It also drops the TrueSearch hook that reconfigured the indexer on every upload.
Let the container autostart pass honour license grace
This commit adds changes to gate the container autostart pass on the grace-aware CONTAINERS entitlement and skip running containers, adds the missing strict license check to container.start, and lets existing containers be edited while unlicensed. A pool unlock no longer stops or starts autostart containers when the feature is not licensed.
[lldb][test] Force lldb-server use in fail_watchpoint_command.test (#236711)
Turns out that our Windows on Arm bot hasn't been testing lldb-server
this entire time. We set LLDB_USE_LLDB_SERVER, but to test it you have
to set LLDB_TEST_USE_LLDB_SERVER.
And I don't fancy setting that and waiting a week to find out what
breaks.
So we will update in the future bot but for now, make this test always
use lldb-server.
With in-process debug, you cannot set any watchpoints on Windows on Arm.
With lldb-server, you can set 1, at least you can on the bot's hardware.
Fixes #235985. Relates to #232235.
Let the VM autostart pass honour license grace
This commit adds changes to gate the VM autostart pass (boot and failover) on the grace-aware VMS entitlement and skip VMs that are already running, while vm.start, vm.restart and vm.create stay strict and VM edits are allowed while unlicensed. A pool unlock no longer stops or starts autostart VMs when the feature is not licensed.
[libc] Use a syscall wrapper for semop
This PR move semop behind the centralized syscall wrappers, following libc/docs/dev/syscall_wrapper_refactor.md.