CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
glue::InodeTracker Class Reference

#include <glue_buffer.h>

Collaboration diagram for glue::InodeTracker:

Classes

struct  Cursor
 
struct  Statistics
 
class  VfsPutRaii
 

Public Member Functions

Statistics GetStatistics ()
 
 InodeTracker ()
 
 InodeTracker (const InodeTracker &other)
 
InodeTrackeroperator= (const InodeTracker &other)
 
 ~InodeTracker ()
 
void VfsGetBy (const InodeEx inode_ex, const uint32_t by, const PathString &path)
 
void VfsGet (const InodeEx inode_ex, const PathString &path)
 
VfsPutRaii GetVfsPutRaii ()
 
bool FindPath (InodeEx *inode_ex, PathString *path)
 
uint64_t FindInode (const PathString &path)
 
bool FindDentry (uint64_t ino, uint64_t *parent_ino, NameString *name)
 
bool ReplaceInode (uint64_t old_inode, const InodeEx &new_inode)
 
Cursor BeginEnumerate ()
 
bool NextEntry (Cursor *cursor, uint64_t *inode_parent, NameString *name)
 
bool NextInode (Cursor *cursor, uint64_t *inode)
 
void EndEnumerate (Cursor *cursor)
 

Private Member Functions

void InitLock ()
 
void CopyFrom (const InodeTracker &other)
 
void Lock () const
 
void Unlock () const
 

Private Attributes

unsigned version_
 
pthread_mutex_t * lock_
 
PathMap path_map_
 
InodeExMap inode_ex_map_
 
InodeReferences inode_references_
 
Statistics statistics_
 

Static Private Attributes

static const unsigned kVersion = 4
 

Detailed Description

Tracks inode reference counters as given by Fuse.

Definition at line 593 of file glue_buffer.h.

Constructor & Destructor Documentation

glue::InodeTracker::InodeTracker ( )

Definition at line 83 of file glue_buffer.cc.

glue::InodeTracker::InodeTracker ( const InodeTracker other)
explicit

Definition at line 89 of file glue_buffer.cc.

glue::InodeTracker::~InodeTracker ( )

Definition at line 104 of file glue_buffer.cc.

Referenced by RestoreState().

Here is the caller graph for this function:

Member Function Documentation

Cursor glue::InodeTracker::BeginEnumerate ( )
inline

Definition at line 763 of file glue_buffer.h.

Referenced by FuseInvalidator::MainInvalidator(), and TalkManager::MainResponder().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::InodeTracker::CopyFrom ( const InodeTracker other)
private

Definition at line 73 of file glue_buffer.cc.

Here is the call graph for this function:

void glue::InodeTracker::EndEnumerate ( Cursor cursor)
inline

Definition at line 788 of file glue_buffer.h.

Referenced by FuseInvalidator::MainInvalidator(), and TalkManager::MainResponder().

Here is the call graph for this function:

Here is the caller graph for this function:

bool glue::InodeTracker::FindDentry ( uint64_t  ino,
uint64_t *  parent_ino,
NameString name 
)
inline

Definition at line 726 of file glue_buffer.h.

Referenced by cvmfs::cvmfs_getattr().

Here is the call graph for this function:

Here is the caller graph for this function:

uint64_t glue::InodeTracker::FindInode ( const PathString path)
inline

Definition at line 718 of file glue_buffer.h.

Referenced by cvmfs::GetDirentForPath().

Here is the call graph for this function:

Here is the caller graph for this function:

bool glue::InodeTracker::FindPath ( InodeEx inode_ex,
PathString path 
)
inline

Definition at line 700 of file glue_buffer.h.

Referenced by cvmfs::GetDirentForInode(), and cvmfs::GetPathForInode().

Here is the call graph for this function:

Here is the caller graph for this function:

Statistics glue::InodeTracker::GetStatistics ( )
inline

Definition at line 673 of file glue_buffer.h.

Referenced by TalkManager::MainResponder().

Here is the caller graph for this function:

VfsPutRaii glue::InodeTracker::GetVfsPutRaii ( )
inline

Definition at line 698 of file glue_buffer.h.

Referenced by cvmfs::cvmfs_forget().

Here is the caller graph for this function:

void glue::InodeTracker::InitLock ( )
private

Definition at line 65 of file glue_buffer.cc.

Here is the call graph for this function:

void glue::InodeTracker::Lock ( ) const
inlineprivate

Definition at line 797 of file glue_buffer.h.

Referenced by BeginEnumerate(), FindDentry(), FindInode(), FindPath(), ReplaceInode(), VfsGetBy(), and glue::InodeTracker::VfsPutRaii::VfsPutRaii().

Here is the call graph for this function:

Here is the caller graph for this function:

bool glue::InodeTracker::NextEntry ( Cursor cursor,
uint64_t *  inode_parent,
NameString name 
)
inline

Definition at line 769 of file glue_buffer.h.

Referenced by TalkManager::MainResponder().

Here is the call graph for this function:

Here is the caller graph for this function:

bool glue::InodeTracker::NextInode ( Cursor cursor,
uint64_t *  inode 
)
inline

Definition at line 784 of file glue_buffer.h.

Referenced by FuseInvalidator::MainInvalidator(), and TalkManager::MainResponder().

Here is the call graph for this function:

Here is the caller graph for this function:

InodeTracker & glue::InodeTracker::operator= ( const InodeTracker other)

Definition at line 95 of file glue_buffer.cc.

bool glue::InodeTracker::ReplaceInode ( uint64_t  old_inode,
const InodeEx new_inode 
)
inline

The new inode has reference counter 0. Returns true if the inode was found and replaced

Definition at line 748 of file glue_buffer.h.

Referenced by cvmfs::cvmfs_lookup().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::InodeTracker::Unlock ( ) const
inlineprivate

Definition at line 801 of file glue_buffer.h.

Referenced by EndEnumerate(), FindDentry(), FindInode(), FindPath(), ReplaceInode(), VfsGetBy(), and glue::InodeTracker::VfsPutRaii::~VfsPutRaii().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::InodeTracker::VfsGet ( const InodeEx  inode_ex,
const PathString path 
)
inline

Definition at line 694 of file glue_buffer.h.

Referenced by cvmfs::cvmfs_lookup().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::InodeTracker::VfsGetBy ( const InodeEx  inode_ex,
const uint32_t  by,
const PathString path 
)
inline

Definition at line 680 of file glue_buffer.h.

Referenced by compat::inode_tracker::Migrate(), compat::inode_tracker_v2::Migrate(), compat::inode_tracker_v3::Migrate(), and VfsGet().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

InodeExMap glue::InodeTracker::inode_ex_map_
private
InodeReferences glue::InodeTracker::inode_references_
private
const unsigned glue::InodeTracker::kVersion = 4
staticprivate

Definition at line 793 of file glue_buffer.h.

pthread_mutex_t* glue::InodeTracker::lock_
private

Definition at line 807 of file glue_buffer.h.

Referenced by Lock(), and Unlock().

PathMap glue::InodeTracker::path_map_
private
Statistics glue::InodeTracker::statistics_
private
unsigned glue::InodeTracker::version_
private

Definition at line 806 of file glue_buffer.h.

Referenced by CopyFrom().


The documentation for this class was generated from the following files: