fs/nfsd/xdr4.h
Source file repositories/reference/linux-study-clean/fs/nfsd/xdr4.h
File Facts
- System
- Linux kernel
- Corpus path
fs/nfsd/xdr4.h- Extension
.h- Size
- 31650 bytes
- Lines
- 1084
- Domain
- Core OS
- Bucket
- VFS And Filesystem Core
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
state.hnfsd.h
Detected Declarations
struct nfsd4_compound_statestruct nfsd4_change_infostruct nfsd4_accessstruct nfsd4_closestruct nfsd4_commitstruct nfsd4_createstruct nfsd4_delegreturnstruct nfsd4_getattrstruct nfsd4_linkstruct nfsd4_lock_deniedstruct nfsd4_lockstruct nfsd4_locktstruct nfsd4_lockustruct nfsd4_lookupstruct nfsd4_putfhstruct nfsd4_getxattrstruct nfsd4_setxattrstruct nfsd4_removexattrstruct nfsd4_listxattrsstruct nfsd4_openstruct nfsd4_open_confirmstruct nfsd4_open_downgradestruct nfsd4_readstruct nfsd_case_attrs_cachestruct nfsd4_readdirstruct nfsd4_release_lockownerstruct nfsd4_readlinkstruct nfsd4_removestruct nfsd4_renamestruct nfsd4_secinfostruct nfsd4_secinfo_no_namestruct nfsd4_setattrstruct nfsd4_setclientidstruct nfsd4_setclientid_confirmstruct nfsd4_test_stateid_idstruct nfsd4_test_stateidstruct nfsd4_free_stateidstruct nfsd4_get_dir_delegationstruct nfsd4_verifystruct nfsd4_writestruct nfsd4_exchange_idstruct nfsd4_sequencestruct nfsd4_destroy_sessionstruct nfsd4_destroy_clientidstruct nfsd4_reclaim_completestruct nfsd4_deviceidstruct nfsd4_layout_segstruct nfsd4_getdeviceinfo
Annotated Snippet
struct nfsd4_compound_state {
struct svc_fh current_fh;
struct svc_fh save_fh;
struct nfs4_stateowner *replay_owner;
struct nfs4_client *clp;
/* For sessions DRC */
struct nfsd4_session *session;
struct nfsd4_slot *slot;
int data_offset;
bool spo_must_allowed;
size_t iovlen;
u32 minorversion;
__be32 status;
stateid_t current_stateid;
stateid_t save_stateid;
/* to indicate current and saved state id presents */
u32 sid_flags;
};
static inline bool nfsd4_has_session(struct nfsd4_compound_state *cs)
{
return cs->slot != NULL;
}
struct nfsd4_change_info {
u32 atomic;
u64 before_change;
u64 after_change;
};
struct nfsd4_access {
u32 ac_req_access; /* request */
u32 ac_supported; /* response */
u32 ac_resp_access; /* response */
};
struct nfsd4_close {
u32 cl_seqid; /* request */
stateid_t cl_stateid; /* request+response */
};
struct nfsd4_commit {
u64 co_offset; /* request */
u32 co_count; /* request */
nfs4_verifier co_verf; /* response */
};
struct nfsd4_create {
u32 cr_namelen; /* request */
char * cr_name; /* request */
u32 cr_type; /* request */
union { /* request */
struct {
u32 datalen;
char *data;
struct kvec first;
} link; /* NF4LNK */
struct {
u32 specdata1;
u32 specdata2;
} dev; /* NF4BLK, NF4CHR */
} u;
u32 cr_bmval[3]; /* request */
struct iattr cr_iattr; /* request */
int cr_umask; /* request */
struct nfsd4_change_info cr_cinfo; /* response */
struct nfs4_acl *cr_acl;
struct posix_acl *cr_dpacl;
struct posix_acl *cr_pacl;
struct xdr_netobj cr_label;
};
#define cr_datalen u.link.datalen
#define cr_data u.link.data
#define cr_first u.link.first
#define cr_specdata1 u.dev.specdata1
#define cr_specdata2 u.dev.specdata2
struct nfsd4_delegreturn {
stateid_t dr_stateid;
};
struct nfsd4_getattr {
u32 ga_bmval[3]; /* request */
struct svc_fh *ga_fhp; /* response */
};
struct nfsd4_link {
u32 li_namelen; /* request */
char * li_name; /* request */
struct nfsd4_change_info li_cinfo; /* response */
Annotation
- Immediate include surface: `state.h`, `nfsd.h`.
- Detected declarations: `struct nfsd4_compound_state`, `struct nfsd4_change_info`, `struct nfsd4_access`, `struct nfsd4_close`, `struct nfsd4_commit`, `struct nfsd4_create`, `struct nfsd4_delegreturn`, `struct nfsd4_getattr`, `struct nfsd4_link`, `struct nfsd4_lock_denied`.
- Atlas domain: Core OS / VFS And Filesystem Core.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.