tests: Add pjdfstest integration
Use ATF to wrap the new reimplementation of pjdfstest that came out of
GSOC 2022, now available in the ports tree as filesystems/pjdfstest.
So far I added tests for UFS (with several different option
combinations), tmpfs and ZFS, plus ZFS+nullfs. All of these create a
memory disk, initialize the filesystem, and point the pjdfstest
executable at it.
In the future it would be good to add tests for at least NFS and p9fs.
Reviewed by: asomers
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D56605
(cherry picked from commit 8fd4d1c0fff8441b42dbab767810db7aeaf796c3)
virtio/p9fs: Define the channel list mutex as static
No functional change intended.
MFC after: 1 week
(cherry picked from commit 2586f9f459adc6610957ba0d74a167b85fe24ac7)
p9fs: Remove the "cancel" transport method
Nothing calls it, and the existing virtio transport doesn't implement
it. No functional change intended.
MFC after: 1 week
(cherry picked from commit 94989248641a17f5c2afc367df4845e4113779a1)
librpcsec_gss: Fix an off-by-one in rpc_gss_get_principal_name()
Include an extra byte for the nul-terminator, otherwise we may end up
with an out-of-bounds write.
The corresponding bug in the kernel implementation was fixed by commit
e3081f7e3e2d ("kgssapi(4): Fix string overrun in Kerberos principal construction").
Reviewed by: markj
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D57738
(cherry picked from commit 635ad6f2ec97e9c6b1f15620cd5ee84eb632082f)
libnetbsd: Avoid bringing in all of sys/param.h in sys/types.h
It's okay to hard-code NBBY, as the value is somewhat unlikely to
change.
The pollution from sys/param.h makes it harder to import test code from
NetBSD since it can introduce conflicting definitions, e.g.,
MIN()/MAX().
Reviewed by: ngie
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57754
(cherry picked from commit 0976744085bcd7ebda9779b02d78a85254b3e352)
makefs/zfs: Explicitly include sys/param.h for nitems()
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
(cherry picked from commit 88deb1cff92cb3620c248f32fa6e7bdbc5301213)
install: Explicitly include sys/param.h for MAXPATHLEN
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
(cherry picked from commit ca89b0fa1a93744a5bbf7a5c949826bbee4e2559)
[lldb] Remove GDBRemoteDynamicRegisterInfo (#208067)
At this point, GDBRemoteDynamicRegisterInfo is an idempotent wrapper
around DynamicRegisterInfo. Its remaining methods are unimplemented as
of 3f5fd4b3c1d670649b59f3631287b6f54c6b85ee, so the only functional
difference is that it provides public copy and copy-assign constructors.
I propose that GDBRemoteDynamicRegisterInfo be removed in favor of
DynamicRegisterInfo.
[ADT][NFC] Simplify llvm::unique_function (#208251)
Refactor the core of UniqueFunctionBase to move away from static
function pointer tables, which consume ~4kiB in .data.rel.ro. Instead,
store two function pointers on construction of the UniqueFunctionBase,
one for call and one that combines move and destruction. Retain the
memcpy path for trivial inline structs. (I haven't verified whether this
is actually beneficial.)
Also, greatly simplify the class and implement the callbacks using
lambdas.
fusefs: proofread an error message in the tests
Reported by: otis
Fixes: 2c1482e3053 ("fusefs: fix a race in the pre-init tests")
Sponsored by: ConnectWise
(cherry picked from commit 381ebe25f0b9fae5b3470e9c6e0767909e0fa85a)
fusefs: fix a race in the pre-init tests
These tests allow the user to customize the INIT response. But it's
necessary to block the daemon's service loop from running until those
expectations have been set. This race has never caused failures before
simply due to luck. But now it's failing on slower platforms.
PR: 296236
Reported by: siva
Sponsored by: ConnectWise
Reviewed by: siva
Differential Revision: https://reviews.freebsd.org/D57781
(cherry picked from commit 2c1482e305368af182a7bde0e53d0d180b319326)
fusefs: only search for FREAD fufh in readdir
The extra search for an FEXEC fufh shall be removed, since readdir
is only supposed to be called on a directory opened with FREAD. The
sole exception is NFS, which will call VOP_READDIR with directories that
aren't open at all. fuse already has special code to handle that.
Also remove the fuse_filehandle_get_dir() function, since it's not
used anywhere else.
Signed-off-by: CismonX <admin at cismon.net>
Reviewed by: asomers
Pull Request: https://github.com/freebsd/freebsd-src/pull/1729
(cherry picked from commit 4179f1d9deed83977f159c8afea204293ef4c7d7)
fusefs: fix error handling when reading a directory's sticky bit
When trying to delete or rename a file, fuse_vnop_lookup must check
whether its parent directory's sticky bit is set. Realistically, the
parent directory's attributes will almost always be cached. But it's
possible that they won't be, and in that case we must send a new
FUSE_GETATTR request to the server. If that request fails for some
reason, then we must fail the lookup. Prior to this change fusefs would
ignore failure of that request.
Reported by: Yuxiang Yang, Yizhou Zhao, Ao Wang, Xuewei Feng, Qi Li,
and Ke Xu of Tsinghua University
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D57588
(cherry picked from commit b4af6a4cccc3b4b0ea461463196c258eb92ad2e5)
[AMDGPU][NFC] Templatise and roundtrip gfx12_asm_vopc.s (#208265)
This is just an amended version of the corresponding gfx11 test.
Eliminates the current largest contributor into the undesired delta vs
the downstream True16 branch across MC tests.
ports-mgmt/zig2tuple: Update to g20260706
Rewrites the ZON dependency parsing with std.zig.Ast + Zoir.
Other changes:
- Fixed formatUrl from trimming git+ commit hashes by 7 chars.
Hashes are now at 40 chars and removes any possible commit ambiguity.
- Drop the tarball-extension allowlist.
- Dedupe packages that appear under multiple mirror URLs.
- Report malformed ZON to stderr instead of silently skipping it.
Approved by: arrowd (co-mentor)
[clang][ssaf] Add YAML source-edit format (#204491)
Adds the built-in `SourceEditFormat`, registered under the file
extension `yaml`. The writer drives `llvm::yaml::Output` against the
existing `clang::tooling::TranslationUnitReplacements` `MappingTraits`
from `clang/Tooling/ReplacementsYaml.h`, so the resulting document is
byte-for-byte consumable by `clang-apply-replacements`.
Anchored via `SSAFYAMLSourceEditFormatAnchorSource` so static builds
keep the registration.
Assisted-By: Claude Opus 4.7
[mlir][ArmSME] fix f64 scalable matmul crashes in `VectorLegalizationPass` (#207947)
This PR simply fix what we identified in iree-org/iree#24689.
**Note**: the new test did not pass the checks prior to this PR 🫶
@banach-space @egebeysel @AGindinson
---------
Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
Co-authored-by: Artem Gindinson <gindinson at roofline.ai>
Deduplicate skiplist, shortlist, and NCA retry handling
Introduce helpers functions for manipulating lists of strings, such as
the FQDNs in skiplist & shortlist, and rpkiNotify URLs used for batching
NCA retries.
OK tb@
libzfs/crypto: fetch key material directly onto the stack
Previously this was creating a temporary file in /tmp or TMPDIR, which
are often backed by a real filesystem on real disks, and so the key
material would be written to disk.
Instead, create a buffer on the stack, and create a stream over the top
of it, and let libcurl use that instead.
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Chris Longros <chris.longros at gmail.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18762
libzfs/crypto: name the key material stream more clearly
Very difficult to see that (a) it's operating on a stdio stream and not
a file descriptor and (b) that there's a file involved and not just an
in-memory buffer.
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Chris Longros <chris.longros at gmail.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18762
[IR][NFC] Drop vtable from PassConcept/PassModel (#208168)
The PassConcept/PassModel vtable has a size of 64 bytes (offset to top,
RTTI pointer, complete object destructor, deleting destructor, run,
printPipeline, name, isRequired), which add up to 53kiB (all
targets)/44 kiB (single-target). As more back-end passes get ported to
the new pass manager, this size will increase.
Remove the vtables by replacing the virtual dispatch with explicit
function pointers, initialized when adding the pass to the pass manager.
While this *very* slightly increases the cost of adding a pass, there's
also a very slight win from avoiding the vtable indirection when
running/destructing the pass.