CernVM-FS  2.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
cvmfs Namespace Reference

Classes

struct  DirectoryListing
 
class  TransactionSink
 
class  Fetcher
 
struct  InodeGenerationInfo
 
class  Sink
 
class  Uuid
 

Typedefs

typedef google::dense_hash_map
< uint64_t, DirectoryListing,
hash_murmur< uint64_t > > 
DirectoryHandles
 

Functions

static double GetKcacheTimeout ()
 
void GetReloadStatus (bool *drainout_mode, bool *maintenance_mode)
 
static bool UseWatchdog ()
 
std::string PrintInodeGeneration ()
 
static bool CheckVoms (const fuse_ctx &fctx)
 
static bool GetDirentForInode (const fuse_ino_t ino, catalog::DirectoryEntry *dirent)
 
static bool GetDirentForPath (const PathString &path, catalog::DirectoryEntry *dirent)
 
static bool GetPathForInode (const fuse_ino_t ino, PathString *path)
 
static void DoTraceInode (const int event, fuse_ino_t ino, const std::string &msg)
 
static void TraceInode (const int event, fuse_ino_t ino, const std::string &msg)
 
static void cvmfs_lookup (fuse_req_t req, fuse_ino_t parent, const char *name)
 
static void cvmfs_forget (fuse_req_t req, fuse_ino_t ino, uint64_t nlookup)
 
static void ReplyNegative (const catalog::DirectoryEntry &dirent, fuse_req_t req)
 
static void cvmfs_getattr (fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
 
static void cvmfs_readlink (fuse_req_t req, fuse_ino_t ino)
 
static void AddToDirListing (const fuse_req_t req, const char *name, const struct stat *stat_info, BigVector< char > *listing)
 
static void cvmfs_opendir (fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
 
static void cvmfs_releasedir (fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
 
static void ReplyBufferSlice (const fuse_req_t req, const char *buffer, const size_t buffer_size, const off_t offset, const size_t max_size)
 
static void cvmfs_readdir (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, struct fuse_file_info *fi)
 
static void cvmfs_open (fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
 
static void cvmfs_read (fuse_req_t req, fuse_ino_t ino, size_t size, off_t off, struct fuse_file_info *fi)
 
static void cvmfs_release (fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
 
static void cvmfs_statfs (fuse_req_t req, fuse_ino_t ino)
 
static void cvmfs_getxattr (fuse_req_t req, fuse_ino_t ino, const char *name, size_t size)
 
static void cvmfs_listxattr (fuse_req_t req, fuse_ino_t ino, size_t size)
 
bool Evict (const string &path)
 
bool Pin (const string &path)
 
static void cvmfs_init (void *userdata, struct fuse_conn_info *conn)
 
static void cvmfs_destroy (void *unused __attribute__((unused)))
 
static void SetCvmfsOperations (struct fuse_lowlevel_ops *cvmfs_operations)
 
void UnregisterQuotaListener ()
 
bool Evict (const std::string &path)
 
bool Pin (const std::string &path)
 
void TLSDestructor (void *data)
 

Variables

FileSystemfile_system_ = NULL
 
MountPointmount_point_ = NULL
 
TalkManagertalk_mgr_ = NULL
 
NotificationClientnotification_client_ = NULL
 
Watchdogwatchdog_ = NULL
 
FuseRemounterfuse_remounter_ = NULL
 
InodeGenerationInfo inode_generation_info_
 
const loader::LoaderExportsloader_exports_ = NULL
 
OptionsManageroptions_mgr_ = NULL
 
pid_t pid_ = 0
 
quota::ListenerHandlewatchdog_listener_ = NULL
 
quota::ListenerHandleunpin_listener_ = NULL
 
DirectoryHandlesdirectory_handles_ = NULL
 
pthread_mutex_t lock_directory_handles_ = PTHREAD_MUTEX_INITIALIZER
 
uint64_t next_directory_handle_ = 0
 
unsigned max_open_files_
 
const int kNumReservedFd = 512
 
std::string * repository_name_
 
bool foreground_
 

Detailed Description

This file is part of the CernVM File System.

Typedef Documentation

typedef google::dense_hash_map<uint64_t, DirectoryListing, hash_murmur<uint64_t> > cvmfs::DirectoryHandles

Definition at line 153 of file cvmfs.cc.

Function Documentation

static void cvmfs::AddToDirListing ( const fuse_req_t  req,
const char *  name,
const struct stat *  stat_info,
BigVector< char > *  listing 
)
static

Definition at line 626 of file cvmfs.cc.

Referenced by cvmfs_opendir().

Here is the call graph for this function:

Here is the caller graph for this function:

static bool cvmfs::CheckVoms ( const fuse_ctx &  fctx)
static

Definition at line 199 of file cvmfs.cc.

Referenced by cvmfs_getattr(), cvmfs_getxattr(), cvmfs_open(), and cvmfs_opendir().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_destroy ( void *unused   __attribute__(unused))
static

Definition at line 1561 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the caller graph for this function:

static void cvmfs::cvmfs_forget ( fuse_req_t  req,
fuse_ino_t  ino,
uint64_t  nlookup 
)
static

Definition at line 467 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_getattr ( fuse_req_t  req,
fuse_ino_t  ino,
struct fuse_file_info *  fi 
)
static

Transform a cvmfs dirent into a struct stat.

Definition at line 556 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_getxattr ( fuse_req_t  req,
fuse_ino_t  ino,
const char *  name,
size_t  size 
)
static

Definition at line 1322 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_init ( void *  userdata,
struct fuse_conn_info *  conn 
)
static

Do after-daemon() initialization

Definition at line 1536 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_listxattr ( fuse_req_t  req,
fuse_ino_t  ino,
size_t  size 
)
static

Definition at line 1404 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_lookup ( fuse_req_t  req,
fuse_ino_t  parent,
const char *  name 
)
static

Find the inode number of a file name in a directory given by inode. This or getattr is called as kind of prerequisit to every operation. We do check catalog TTL here (and reload, if necessary).

Definition at line 372 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_open ( fuse_req_t  req,
fuse_ino_t  ino,
struct fuse_file_info *  fi 
)
static

Open a file from cache. If necessary, file is downloaded first.

Returns
Read-only file descriptor in fi->fh or kChunkedFileHandle for chunked files

Definition at line 863 of file cvmfs.cc.

Referenced by cvmfs_test_cat(), libcvmfs_do_fopen(), and SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_opendir ( fuse_req_t  req,
fuse_ino_t  ino,
struct fuse_file_info *  fi 
)
static

Open a directory for listing.

Definition at line 653 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_read ( fuse_req_t  req,
fuse_ino_t  ino,
size_t  size,
off_t  off,
struct fuse_file_info *  fi 
)
static

Redirected to pread into cache.

Definition at line 1062 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_readdir ( fuse_req_t  req,
fuse_ino_t  ino,
size_t  size,
off_t  off,
struct fuse_file_info *  fi 
)
static

Read the directory listing.

Definition at line 832 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_readlink ( fuse_req_t  req,
fuse_ino_t  ino 
)
static

Reads a symlink from the catalog. Environment variables are expanded.

Definition at line 595 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_release ( fuse_req_t  req,
fuse_ino_t  ino,
struct fuse_file_info *  fi 
)
static

File close operation, redirected into cache.

Definition at line 1207 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_releasedir ( fuse_req_t  req,
fuse_ino_t  ino,
struct fuse_file_info *  fi 
)
static

Release a directory.

Definition at line 783 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::cvmfs_statfs ( fuse_req_t  req,
fuse_ino_t  ino 
)
static

Definition at line 1271 of file cvmfs.cc.

Referenced by SetCvmfsOperations().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::DoTraceInode ( const int  event,
fuse_ino_t  ino,
const std::string &  msg 
)
static

Definition at line 345 of file cvmfs.cc.

Referenced by TraceInode().

Here is the call graph for this function:

Here is the caller graph for this function:

bool cvmfs::Evict ( const std::string &  path)
bool cvmfs::Evict ( const string &  path)

Definition at line 1451 of file cvmfs.cc.

Referenced by TalkManager::MainResponder().

Here is the call graph for this function:

Here is the caller graph for this function:

static bool cvmfs::GetDirentForInode ( const fuse_ino_t  ino,
catalog::DirectoryEntry dirent 
)
static

Definition at line 213 of file cvmfs.cc.

Referenced by cvmfs_getattr(), cvmfs_getxattr(), cvmfs_listxattr(), cvmfs_lookup(), cvmfs_open(), cvmfs_opendir(), and cvmfs_readlink().

Here is the call graph for this function:

Here is the caller graph for this function:

static bool cvmfs::GetDirentForPath ( const PathString path,
catalog::DirectoryEntry dirent 
)
static

Definition at line 278 of file cvmfs.cc.

Referenced by cvmfs_lookup(), cvmfs_opendir(), Evict(), and Pin().

Here is the call graph for this function:

Here is the caller graph for this function:

static double cvmfs::GetKcacheTimeout ( )
inlinestatic

Definition at line 165 of file cvmfs.cc.

Referenced by cvmfs_getattr(), and cvmfs_lookup().

Here is the call graph for this function:

Here is the caller graph for this function:

static bool cvmfs::GetPathForInode ( const fuse_ino_t  ino,
PathString path 
)
static

Definition at line 320 of file cvmfs.cc.

Referenced by cvmfs_getxattr(), cvmfs_listxattr(), cvmfs_lookup(), cvmfs_open(), cvmfs_opendir(), and DoTraceInode().

Here is the call graph for this function:

Here is the caller graph for this function:

void cvmfs::GetReloadStatus ( bool *  drainout_mode,
bool *  maintenance_mode 
)

Definition at line 172 of file cvmfs.cc.

Referenced by TalkManager::MainResponder().

Here is the call graph for this function:

Here is the caller graph for this function:

bool cvmfs::Pin ( const std::string &  path)
bool cvmfs::Pin ( const string &  path)

Definition at line 1464 of file cvmfs.cc.

Referenced by TalkManager::MainResponder().

Here is the call graph for this function:

Here is the caller graph for this function:

std::string cvmfs::PrintInodeGeneration ( )

Definition at line 188 of file cvmfs.cc.

Referenced by TalkManager::MainResponder().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::ReplyBufferSlice ( const fuse_req_t  req,
const char *  buffer,
const size_t  buffer_size,
const off_t  offset,
const size_t  max_size 
)
static

Very large directory listings have to be sent in slices.

Definition at line 816 of file cvmfs.cc.

Referenced by cvmfs_readdir().

Here is the caller graph for this function:

static void cvmfs::ReplyNegative ( const catalog::DirectoryEntry dirent,
fuse_req_t  req 
)
static

Looks into dirent to decide if this is an EIO negative reply or an ENOENT negative reply. We do not need to store the reply in the negative cache tracker because ReplyNegative is called on inode queries. Inodes, however, change anyway when a new catalog is applied.

Definition at line 543 of file cvmfs.cc.

Referenced by cvmfs_getattr(), cvmfs_getxattr(), cvmfs_listxattr(), cvmfs_open(), cvmfs_opendir(), and cvmfs_readlink().

Here is the call graph for this function:

Here is the caller graph for this function:

static void cvmfs::SetCvmfsOperations ( struct fuse_lowlevel_ops *  cvmfs_operations)
static

Puts the callback functions in one single structure

Definition at line 1569 of file cvmfs.cc.

Referenced by __attribute__().

Here is the call graph for this function:

Here is the caller graph for this function:

void cvmfs::TLSDestructor ( void *  data)

Definition at line 24 of file fetch.cc.

Here is the call graph for this function:

static void cvmfs::TraceInode ( const int  event,
fuse_ino_t  ino,
const std::string &  msg 
)
inlinestatic

Definition at line 360 of file cvmfs.cc.

Referenced by cvmfs_getattr(), cvmfs_getxattr(), cvmfs_listxattr(), cvmfs_opendir(), cvmfs_readlink(), and cvmfs_statfs().

Here is the call graph for this function:

Here is the caller graph for this function:

void cvmfs::UnregisterQuotaListener ( )

Definition at line 1595 of file cvmfs.cc.

Referenced by TalkManager::MainResponder().

Here is the call graph for this function:

Here is the caller graph for this function:

static bool cvmfs::UseWatchdog ( )
static

Definition at line 178 of file cvmfs.cc.

Referenced by Init().

Here is the caller graph for this function:

Variable Documentation

DirectoryHandles* cvmfs::directory_handles_ = NULL
bool cvmfs::foreground_

Definition at line 135 of file loader.cc.

Referenced by FuseMain(), loader::ParseCmdLine(), and loader::ParseFuseOptions().

InodeGenerationInfo cvmfs::inode_generation_info_
const int cvmfs::kNumReservedFd = 512

Number of reserved file descriptors for internal use

Definition at line 162 of file cvmfs.cc.

Referenced by cvmfs_open(), and MaxFdMagicXattr::GetValue().

const loader::LoaderExports * cvmfs::loader_exports_ = NULL
pthread_mutex_t cvmfs::lock_directory_handles_ = PTHREAD_MUTEX_INITIALIZER

Definition at line 155 of file cvmfs.cc.

Referenced by cvmfs_opendir(), cvmfs_readdir(), and cvmfs_releasedir().

unsigned cvmfs::max_open_files_

maximum allowed number of open files

Definition at line 158 of file cvmfs.cc.

Referenced by cvmfs_open(), MaxFdMagicXattr::GetValue(), and Init().

uint64_t cvmfs::next_directory_handle_ = 0

Definition at line 156 of file cvmfs.cc.

Referenced by cvmfs_opendir(), and RestoreState().

NotificationClient* cvmfs::notification_client_ = NULL

Definition at line 123 of file cvmfs.cc.

Referenced by Init(), ShutdownMountpoint(), and Spawn().

pid_t cvmfs::pid_ = 0

will be set after deamon()

Definition at line 146 of file cvmfs.cc.

Referenced by PidMagicXattr::GetValue(), TalkManager::MainResponder(), and Spawn().

std::string* cvmfs::repository_name_

Definition at line 127 of file loader.cc.

Referenced by FuseMain(), loader::ParseCmdLine(), and loader::ParseFuseOptions().

TalkManager* cvmfs::talk_mgr_ = NULL

Definition at line 122 of file cvmfs.cc.

Referenced by Init(), ShutdownMountpoint(), and Spawn().

quota::ListenerHandle* cvmfs::unpin_listener_ = NULL

Definition at line 148 of file cvmfs.cc.

Referenced by ShutdownMountpoint(), Spawn(), and UnregisterQuotaListener().

Watchdog* cvmfs::watchdog_ = NULL

Definition at line 124 of file cvmfs.cc.

Referenced by Fini(), Init(), and Spawn().

quota::ListenerHandle* cvmfs::watchdog_listener_ = NULL

Definition at line 147 of file cvmfs.cc.

Referenced by ShutdownMountpoint(), Spawn(), and UnregisterQuotaListener().