PatchworkOS  19e446b
A non-POSIX operating system.
Loading...
Searching...
No Matches
dentry_t Struct Reference

Directory entry structure. More...

#include <dentry.h>

Collaboration diagram for dentry_t:

Public Member Functions

 _Atomic (uint64_t) mountCount
 Number of mounts targeting this dentry.
 

Data Fields

ref_t ref
 
dentry_id_t id
 
char name [MAX_NAME]
 The name of the dentry, immutable after creation.
 
vnode_tvnode
 Will be NULL if the dentry is negative, once positive it will never be modified.
 
dentry_tparent
 The parent dentry, will be itself if this is the root dentry, immutable after creation.
 
list_entry_t siblingEntry
 
list_t children
 
superblock_tsuperblock
 
const dentry_ops_tops
 
void * data
 
struct dentry * next
 Next dentry in the dentry cache hash bucket.
 
rcu_entry_t rcu
 RCU entry for deferred cleanup.
 
list_entry_t otherEntry
 Made available for use by any other subsystems for convenience.
 

Detailed Description

Directory entry structure.

A dentry structure is protected by the mutex of its vnode. Note that since move and rename are not supported in favor of link and remove, the parent of a dentry will never change after creation which allows some optimizations.

Definition at line 154 of file dentry.h.

Member Function Documentation

◆ _Atomic()

dentry_t::_Atomic ( uint64_t  )

Number of mounts targeting this dentry.

Field Documentation

◆ ref

ref_t dentry_t::ref

Definition at line 156 of file dentry.h.

◆ id

dentry_id_t dentry_t::id

Definition at line 157 of file dentry.h.

◆ name

char dentry_t::name[MAX_NAME]

The name of the dentry, immutable after creation.

Definition at line 158 of file dentry.h.

◆ vnode

vnode_t* dentry_t::vnode

Will be NULL if the dentry is negative, once positive it will never be modified.

Definition at line 159 of file dentry.h.

◆ parent

dentry_t* dentry_t::parent

The parent dentry, will be itself if this is the root dentry, immutable after creation.

Definition at line 160 of file dentry.h.

◆ siblingEntry

list_entry_t dentry_t::siblingEntry

Definition at line 161 of file dentry.h.

◆ children

list_t dentry_t::children

Definition at line 162 of file dentry.h.

◆ superblock

superblock_t* dentry_t::superblock

Definition at line 163 of file dentry.h.

◆ ops

const dentry_ops_t* dentry_t::ops

Definition at line 164 of file dentry.h.

◆ data

void* dentry_t::data

Definition at line 165 of file dentry.h.

◆ next

struct dentry* dentry_t::next

Next dentry in the dentry cache hash bucket.

Definition at line 166 of file dentry.h.

◆ rcu

rcu_entry_t dentry_t::rcu

RCU entry for deferred cleanup.

Definition at line 168 of file dentry.h.

◆ otherEntry

list_entry_t dentry_t::otherEntry

Made available for use by any other subsystems for convenience.

Definition at line 169 of file dentry.h.


The documentation for this struct was generated from the following file: