Conversation
Add public filehandle-based lookup, open, metadata, directory and namespace operations without exposing private nfsfh internals or retaining mutable paths. Reuse existing callback data, operation fillers, OPEN/CLOSE and RPC session machinery with explicit input/result ownership. Use CLAIM_FH to open an existing object, authorize object OPEN on the server, support directory LOOKUP access and atomic SETATTR masks. Port the downstream change to the current attribute parser and internal stat helpers, preserving ordinary nfs_stat_64 object results. The upstream base already fixes the malformed-stat callback's missing return. Add a deterministic local RPC fixture covering operations, all 256 SETATTR masks, malformed replies, cancellation, copied inputs and optional allocation-failure injection. Check ordinary and extended stat results with numeric owner and named group attributes, including truncated replies. Check STALE propagation through the existing errno mapper so this change does not depend on the separate STALE-to-ESTALE fix. Downstream-case: NFS-008 (cherry picked from commit ce6ed07)
The PS2 EE build does not define the public NFS_V4_2 dialect constant. Referencing it unconditionally in object_supported() broke that build. A Linux build with ENABLE_NFS4_2=OFF still exposes the constant, so the disabled-support build alone did not catch the regression. Use the existing HAVE_NFS4_2 build guard and report that support was not built in, following the other optional NFSv4.2 operations. Leave supported object operations and the platform feature definitions unchanged. Reproduce the compiler error on the original revision, then build the fixed PS2 static library with the same toolchain image digest as the CI job. Repeat the Linux Debug, sanitizer, allocation, Autotools and disabled-support checks. The existing PS2 CI job remains the upstream regression coverage. Fixes: 75896cb Downstream-case: NFS-008
Include upstream 96cc605, which accepted the independent STALE-to-ESTALE change in PR sahlberg#614. Resolve the CMake test-list conflict by keeping the delay, errno and object fixtures. Keep the object fixture's skip code and both Autotools test entries. No object API behavior or build defaults change in the conflict resolution; the PS2 feature guard remains in its separate preceding commit. Validate the merged tree inside agents-a: all five selected tests pass in Debug and ASan/UBSan, allocation-failure injection passes, and Autotools build/check runs all three RPC/errno fixtures plus the ZDR bytes check. The Linux NFSv4.2-disabled build and the real PS2 cross-build also pass. No library installation or NFS mount is involved. Related-change: 75896cb Related-change: 0610624 Downstream-case: NFS-008
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
nfsfhinternals, and reuses the existing async callbacks, operation builders and OPEN/session machinery.This is a proposal driven by my Linux/FUSE and NFSv4.2 use case, not an attempt to define a universal object API. I'm open to a smaller interface or different naming and ownership conventions if they fit libnfs better.
Test plan
-DENABLE_NFS4_2=OFFto check compatibility with disabled support.