NAS-144888 / 27.0.0 / Add unit tests of system.truenas_setattr and the statx ACL flags (by yocalebo) (#20061)
test_zfs_setattr.py sets each attribute through system.truenas_setattr
and through chmod, chown, utimensat or ZFS_IOC_SETDOSFLAGS on twin
files, as the owner, other users, users an NFSv4 ACL grants write
attributes, write owner or write ACL, root and root without
CAP_LINUX_IMMUTABLE, on NFSv4 and POSIX datasets, and checks that both
give the same errno and result. It also covers the birth time, set-ID
bits, file capabilities, every malformed value, ACLs left as chmod
leaves them, and an idmapped mount, where owners map as chown maps them
and an ACE granting write attributes is matched through the mount's
idmap.
test_zfs_statx_aclflags.py checks that stx_zfsflags gives the trivial
bit and the ACL-wide flags the NFSv4 ACL gives, on files and folders,
and none on a POSIX dataset. It needs truenas_pyos with
ZFSFlags.ACL_PROTECTED, ACL_DEFAULTED and ACL_AUTO_INHERIT.
Both make their datasets under the dataset that holds /var, destroy them
[6 lines not shown]
NAS-144888 / 28.0.0-BETA.1 / Add unit tests of system.truenas_setattr and the statx ACL flags (#20057)
test_zfs_setattr.py sets each attribute through system.truenas_setattr
and through chmod, chown, utimensat or ZFS_IOC_SETDOSFLAGS on twin
files, as the owner, other users, users an NFSv4 ACL grants write
attributes, write owner or write ACL, root and root without
CAP_LINUX_IMMUTABLE, on NFSv4 and POSIX datasets, and checks that both
give the same errno and result. It also covers the birth time, set-ID
bits, file capabilities, every malformed value, ACLs left as chmod
leaves them, and an idmapped mount, where owners map as chown maps them
and an ACE granting write attributes is matched through the mount's
idmap.
test_zfs_statx_aclflags.py checks that stx_zfsflags gives the trivial
bit and the ACL-wide flags the NFSv4 ACL gives, on files and folders,
and none on a POSIX dataset. It needs truenas_pyos with
ZFSFlags.ACL_PROTECTED, ACL_DEFAULTED and ACL_AUTO_INHERIT.
Both make their datasets under the dataset that holds /var, destroy them
afterwards, and need a ZFS with https://github.com/truenas/zfs/pull/490.
[flang][OpenMP] Switch clause verification to descriptor-based
Delete all the scattered pieces of clause verification that are now
replaced by the unified handling.
amdsmu: Update diagnostics comments for Krackan Point
Krackan Point has the same quirks as the Phoenix SMU it would seem.
Reported by: emaste
Sponsored by: The FreeBSD Foundation
[CIR] Fix cir.try successor regions
`TryOp::getSuccessorRegions` sent every exit from the try region back to the
parent, so nothing led from the try region to the handlers. A `cir.resume`
ending the try region, left there once FlattenCFG has flattened an inner
cleanup scope, unwinds into a handler, and `CIRTryOpFlattening` branches it
to the handler dispatch block. Now every exit from the try region can enter
the handlers, and a `cir.resume` leaves the op only when there are none. The
parent keeps its edges to the handlers. An unwind out of a call in the try
region is not a region branch point, so these edges stand in for it, and
without them -remove-dead-values empties a handler that is reached only that
way.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
[CIR] Keep cir.cleanup.scope cleanup regions reachable
RegionBranchOpInterface::getSuccessorRegions must return every region that
may run next, but an unwind out of a call in the body, or a cir.return,
cir.break, cir.continue or cir.goto out of it, runs the cleanup without
passing a region branch point. A cleanup reached only that way had no
predecessor, so generic passes treated it as dead, and -remove-dead-values
erased an EH cleanup that stores to memory. Now the cleanup region is a
successor of the parent and of every body exit, and a body exit that the
cleanup kind does not cover can also leave the op.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Don't use the alpha definitions; They require the CPU_SET() family of
functions, which OpenBSD doesn't support. Removing the alpha-specific
codepath makes it fall into the "generic" path, which does build.
OK sthen@
[llvm-dwarfutil] Add --compress-debug-sections (#231168)
Add --compress-debug-sections[=<format>] to compress the output debug
sections using zlib or zstd, and --no-compress-debug-sections to disable
compression. If neither is specified, the output debug sections are
compressed only if the input debug sections are compressed, using the
same format.
llvm-dwarfutil writes the linked debug sections into the output file
using objcopy's AddSection, but objcopy compresses debug sections before
it adds new sections. So if compression is enabled, the result is
written into a memory buffer and compressed by a second objcopy run.
Without compression, the output is written as before.
If the debug info is not linked (--no-garbage-collection without
--build-accelerator), the input debug sections are copied as is by
default. An explicitly specified format (de)compresses them the same way
llvm-objcopy does.
Assisted-by: Claude Code