fs/lockd/xdr.h
Source file repositories/reference/linux-study-clean/fs/lockd/xdr.h
File Facts
- System
- Linux kernel
- Corpus path
fs/lockd/xdr.h- Extension
.h- Size
- 1723 bytes
- Lines
- 86
- 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
linux/fs.hlinux/filelock.hlinux/nfs.hlinux/sunrpc/xdr.h
Detected Declarations
struct nsm_privatestruct lockd_lockstruct lockd_cookiestruct lockd_argsstruct lockd_resstruct lockd_reboot
Annotated Snippet
struct nsm_private {
unsigned char data[SM_PRIV_SIZE];
};
#define NLM_MAXCOOKIELEN 32
#define NLM_MAXSTRLEN 1024
#define nlm_granted cpu_to_be32(NLM_LCK_GRANTED)
#define nlm_lck_denied cpu_to_be32(NLM_LCK_DENIED)
#define nlm_lck_denied_nolocks cpu_to_be32(NLM_LCK_DENIED_NOLOCKS)
#define nlm_lck_blocked cpu_to_be32(NLM_LCK_BLOCKED)
#define nlm_lck_denied_grace_period cpu_to_be32(NLM_LCK_DENIED_GRACE_PERIOD)
/* Lock info passed via NLM */
struct lockd_lock {
char * caller;
unsigned int len; /* length of "caller" */
struct nfs_fh fh;
struct xdr_netobj oh;
u32 svid;
u64 lock_start;
u64 lock_len;
struct file_lock fl;
};
/*
* NLM cookies. Technically they can be 1K, but Linux only uses 8 bytes.
* FreeBSD uses 16, Apple Mac OS X 10.3 uses 20. Therefore we set it to
* 32 bytes.
*/
struct lockd_cookie {
unsigned char data[NLM_MAXCOOKIELEN];
unsigned int len;
};
/*
* Generic lockd arguments for all but sm_notify
*/
struct lockd_args {
struct lockd_cookie cookie;
struct lockd_lock lock;
u32 block;
u32 reclaim;
u32 state;
};
/*
* Generic lockd result
*/
struct lockd_res {
struct lockd_cookie cookie;
__be32 status;
struct lockd_lock lock;
};
/*
* statd callback when client has rebooted
*/
struct lockd_reboot {
char *mon;
unsigned int len;
u32 state;
struct nsm_private priv;
};
#endif /* _LOCKD_XDR_H */
Annotation
- Immediate include surface: `linux/fs.h`, `linux/filelock.h`, `linux/nfs.h`, `linux/sunrpc/xdr.h`.
- Detected declarations: `struct nsm_private`, `struct lockd_lock`, `struct lockd_cookie`, `struct lockd_args`, `struct lockd_res`, `struct lockd_reboot`.
- 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.