fs/ocfs2/ocfs2_lockid.h
Source file repositories/reference/linux-study-clean/fs/ocfs2/ocfs2_lockid.h
File Facts
- System
- Linux kernel
- Corpus path
fs/ocfs2/ocfs2_lockid.h- Extension
.h- Size
- 2656 bytes
- Lines
- 118
- 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.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
enum ocfs2_lock_typefunction ocfs2_lock_type_char
Annotated Snippet
#ifndef OCFS2_LOCKID_H
#define OCFS2_LOCKID_H
/* lock ids are made up in the following manner:
* name[0] --> type
* name[1-6] --> 6 pad characters, reserved for now
* name[7-22] --> block number, expressed in hex as 16 chars
* name[23-30] --> i_generation, expressed in hex 8 chars
* name[31] --> '\0' */
#define OCFS2_LOCK_ID_MAX_LEN 32
#define OCFS2_LOCK_ID_PAD "000000"
#define OCFS2_DENTRY_LOCK_INO_START 18
enum ocfs2_lock_type {
OCFS2_LOCK_TYPE_META = 0,
OCFS2_LOCK_TYPE_DATA,
OCFS2_LOCK_TYPE_SUPER,
OCFS2_LOCK_TYPE_RENAME,
OCFS2_LOCK_TYPE_RW,
OCFS2_LOCK_TYPE_DENTRY,
OCFS2_LOCK_TYPE_OPEN,
OCFS2_LOCK_TYPE_FLOCK,
OCFS2_LOCK_TYPE_QINFO,
OCFS2_LOCK_TYPE_NFS_SYNC,
OCFS2_LOCK_TYPE_ORPHAN_SCAN,
OCFS2_LOCK_TYPE_REFCOUNT,
OCFS2_LOCK_TYPE_TRIM_FS,
OCFS2_NUM_LOCK_TYPES
};
static inline char ocfs2_lock_type_char(enum ocfs2_lock_type type)
{
char c;
switch (type) {
case OCFS2_LOCK_TYPE_META:
c = 'M';
break;
case OCFS2_LOCK_TYPE_DATA:
c = 'D';
break;
case OCFS2_LOCK_TYPE_SUPER:
c = 'S';
break;
case OCFS2_LOCK_TYPE_RENAME:
c = 'R';
break;
case OCFS2_LOCK_TYPE_RW:
c = 'W';
break;
case OCFS2_LOCK_TYPE_DENTRY:
c = 'N';
break;
case OCFS2_LOCK_TYPE_OPEN:
c = 'O';
break;
case OCFS2_LOCK_TYPE_FLOCK:
c = 'F';
break;
case OCFS2_LOCK_TYPE_QINFO:
c = 'Q';
break;
case OCFS2_LOCK_TYPE_NFS_SYNC:
c = 'Y';
break;
case OCFS2_LOCK_TYPE_ORPHAN_SCAN:
c = 'P';
break;
case OCFS2_LOCK_TYPE_REFCOUNT:
c = 'T';
break;
case OCFS2_LOCK_TYPE_TRIM_FS:
c = 'I';
break;
default:
c = '\0';
}
return c;
}
static char *ocfs2_lock_type_strings[] = {
[OCFS2_LOCK_TYPE_META] = "Meta",
[OCFS2_LOCK_TYPE_DATA] = "Data",
[OCFS2_LOCK_TYPE_SUPER] = "Super",
[OCFS2_LOCK_TYPE_RENAME] = "Rename",
/* Need to differentiate from [R]ename.. serializing writes is the
* important job it does, anyway. */
[OCFS2_LOCK_TYPE_RW] = "Write/Read",
[OCFS2_LOCK_TYPE_DENTRY] = "Dentry",
Annotation
- Detected declarations: `enum ocfs2_lock_type`, `function ocfs2_lock_type_char`.
- 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.