![]() |
CernVM-FS
2.11.0
|
Classes | |
struct | DirectoryListing |
class | FuseInterruptCue |
struct | FuseState |
class | TransactionSink |
class | Fetcher |
struct | InodeGenerationInfo |
class | Sink |
class | FileSink |
class | MemSink |
class | PathSink |
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 | MayBeInPageCacheTracker (const catalog::DirectoryEntry &dirent) |
static bool | HasDifferentContent (const catalog::DirectoryEntry &dirent, const shash::Any &hash, const struct stat &info) |
static bool | FixupOpenInode (const PathString &path, catalog::DirectoryEntry *dirent) |
static bool | GetDirentForInode (const fuse_ino_t ino, catalog::DirectoryEntry *dirent) |
static uint64_t | 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 | FillOpenFlags (const glue::PageCacheTracker::OpenDirectives od, 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 | SendFuseFd (const std::string &socket_path) |
bool | Evict (const std::string &path) |
bool | Pin (const std::string &path) |
void | TLSDestructor (void *data) |
Variables | |
FileSystem * | file_system_ = NULL |
MountPoint * | mount_point_ = NULL |
TalkManager * | talk_mgr_ = NULL |
NotificationClient * | notification_client_ = NULL |
Watchdog * | watchdog_ = NULL |
FuseRemounter * | fuse_remounter_ = NULL |
InodeGenerationInfo | inode_generation_info_ |
const loader::LoaderExports * | loader_exports_ = NULL |
OptionsManager * | options_mgr_ = NULL |
pid_t | pid_ = 0 |
quota::ListenerHandle * | watchdog_listener_ = NULL |
quota::ListenerHandle * | unpin_listener_ = NULL |
DirectoryHandles * | directory_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 |
const unsigned int | kMinOpenFiles = 8192 |
std::string * | repository_name_ |
bool | foreground_ |
This file is part of the CernVM File System.
typedef google::dense_hash_map<uint64_t, DirectoryListing, hash_murmur<uint64_t> > cvmfs::DirectoryHandles |
|
static |
Definition at line 837 of file cvmfs.cc.
Referenced by cvmfs_opendir().
|
static |
Definition at line 230 of file cvmfs.cc.
Referenced by cvmfs_getattr(), cvmfs_getxattr(), cvmfs_open(), and cvmfs_opendir().
|
static |
Definition at line 1974 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Definition at line 624 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Transform a cvmfs dirent into a struct stat.
Definition at line 736 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Definition at line 1658 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Do after-daemon() initialization
Definition at line 1911 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Definition at line 1749 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Find the inode number of a file name in a directory given by inode. This or getattr is called as kind of prerequisite to every operation. We do check catalog TTL here (and reload, if necessary).
Definition at line 496 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Open a file from cache. If necessary, file is downloaded first.
Definition at line 1097 of file cvmfs.cc.
Referenced by libcvmfs_do_fopen(), and SetCvmfsOperations().
|
static |
Open a directory for listing.
Definition at line 864 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Redirected to pread into cache.
Definition at line 1337 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Read the directory listing.
Definition at line 1049 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Reads a symlink from the catalog. Environment variables are expanded.
Definition at line 805 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
File close operation, redirected into cache.
Definition at line 1510 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Release a directory.
Definition at line 1000 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Returns information about a mounted filesystem. In this case it returns information about the local cache occupancy of cvmfs.
Note: If the elements of the struct statvfs *info are set to 0, it will cause it to be ignored in commandline tool "df".
Definition at line 1592 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Definition at line 469 of file cvmfs.cc.
Referenced by TraceInode().
bool cvmfs::Evict | ( | const std::string & | path | ) |
bool cvmfs::Evict | ( | const string & | path | ) |
Definition at line 1812 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
Definition at line 1073 of file cvmfs.cc.
Referenced by cvmfs_open().
|
static |
When we lookup an inode (cvmfs_lookup(), cvmfs_opendir()), we usually provide the live inode, i.e. the one in the inode tracker. However, if the inode refers to an open file that has a different content then the one from the current catalogs, we will replace the live inode in the tracker by the one from the current generation.
To still access the old inode, e.g. for fstat() on the open file, the stat structure connected to this inode is taken from the page cache tracker.
Definition at line 272 of file cvmfs.cc.
Referenced by GetDirentForPath().
|
static |
Definition at line 295 of file cvmfs.cc.
Referenced by cvmfs_getattr(), cvmfs_getxattr(), cvmfs_listxattr(), cvmfs_lookup(), cvmfs_open(), cvmfs_opendir(), and cvmfs_readlink().
|
static |
Returns 0 if the path does not exist 1 if the live inode is returned >1 the live inode, which is then stale and the inode in dirent comes from the catalog in the current generation (see FixupOpenInode)
Definition at line 386 of file cvmfs.cc.
Referenced by cvmfs_lookup(), cvmfs_opendir(), Evict(), and Pin().
|
inlinestatic |
Definition at line 196 of file cvmfs.cc.
Referenced by cvmfs_getattr(), and cvmfs_lookup().
|
static |
Definition at line 435 of file cvmfs.cc.
Referenced by cvmfs_getxattr(), cvmfs_listxattr(), cvmfs_lookup(), cvmfs_open(), cvmfs_opendir(), cvmfs_read(), and DoTraceInode().
void cvmfs::GetReloadStatus | ( | bool * | drainout_mode, |
bool * | maintenance_mode | ||
) |
Definition at line 203 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
Definition at line 248 of file cvmfs.cc.
Referenced by cvmfs_getattr(), and FixupOpenInode().
|
static |
Definition at line 243 of file cvmfs.cc.
Referenced by cvmfs_getattr(), and FixupOpenInode().
bool cvmfs::Pin | ( | const std::string & | path | ) |
bool cvmfs::Pin | ( | const string & | path | ) |
Definition at line 1839 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
std::string cvmfs::PrintInodeGeneration | ( | ) |
Definition at line 219 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
Very large directory listings have to be sent in slices.
Definition at line 1033 of file cvmfs.cc.
Referenced by cvmfs_readdir().
|
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 712 of file cvmfs.cc.
Referenced by cvmfs_getattr(), cvmfs_getxattr(), cvmfs_listxattr(), cvmfs_open(), cvmfs_opendir(), and cvmfs_readlink().
bool cvmfs::SendFuseFd | ( | const std::string & | socket_path | ) |
Definition at line 2019 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
Puts the callback functions in one single structure
Definition at line 1982 of file cvmfs.cc.
Referenced by __attribute__().
void cvmfs::TLSDestructor | ( | void * | data | ) |
|
inlinestatic |
Definition at line 484 of file cvmfs.cc.
Referenced by cvmfs_getattr(), cvmfs_getxattr(), cvmfs_listxattr(), cvmfs_opendir(), cvmfs_readlink(), and cvmfs_statfs().
void cvmfs::UnregisterQuotaListener | ( | ) |
Definition at line 2008 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
DirectoryHandles* cvmfs::directory_handles_ = NULL |
Definition at line 158 of file cvmfs.cc.
Referenced by cvmfs_readdir(), cvmfs_releasedir(), Init(), RestoreState(), SaveState(), and ShutdownMountpoint().
FileSystem* cvmfs::file_system_ = NULL |
Definition at line 124 of file cvmfs.cc.
Referenced by cvmfs_forget(), cvmfs_getattr(), cvmfs_lookup(), cvmfs_open(), cvmfs_opendir(), cvmfs_read(), cvmfs_readdir(), cvmfs_readlink(), cvmfs_release(), cvmfs_releasedir(), cvmfs_statfs(), Evict(), Fini(), FreeSavedState(), GetDirentForInode(), GetDirentForPath(), GetPathForInode(), Init(), Pin(), ReplyNegative(), RestoreState(), SaveState(), and Spawn().
bool cvmfs::foreground_ |
Definition at line 133 of file loader.cc.
Referenced by FuseMain(), loader::ParseCmdLine(), and loader::ParseFuseOptions().
FuseRemounter* cvmfs::fuse_remounter_ = NULL |
Definition at line 129 of file cvmfs.cc.
Referenced by cvmfs_forget(), cvmfs_getattr(), cvmfs_getxattr(), cvmfs_listxattr(), cvmfs_lookup(), cvmfs_open(), cvmfs_opendir(), cvmfs_readlink(), cvmfs_statfs(), Evict(), GetKcacheTimeout(), GetReloadStatus(), Init(), MaintenanceMode(), Pin(), ExpiresMagicXattr::PrepareValueFenced(), ShutdownMountpoint(), and Spawn().
InodeGenerationInfo cvmfs::inode_generation_info_ |
Definition at line 130 of file cvmfs.cc.
Referenced by InodeMaxMagicXattr::GetValue(), Init(), PrintInodeGeneration(), RestoreState(), and SaveState().
const unsigned int cvmfs::kMinOpenFiles = 8192 |
Warn if the process has a lower limit for the number of open file descriptors
Definition at line 170 of file cvmfs.cc.
Referenced by CheckMaxOpenFiles().
const int cvmfs::kNumReservedFd = 512 |
Number of reserved file descriptors for internal use
Definition at line 166 of file cvmfs.cc.
Referenced by cvmfs_open(), and MaxFdMagicXattr::GetValue().
const loader::LoaderExports * cvmfs::loader_exports_ = NULL |
Definition at line 148 of file cvmfs.cc.
Referenced by FuseMain(), UptimeMagicXattr::GetValue(), Init(), TalkManager::MainResponder(), loader::Reload(), SendFuseFd(), and UseWatchdog().
pthread_mutex_t cvmfs::lock_directory_handles_ = PTHREAD_MUTEX_INITIALIZER |
Definition at line 159 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 162 of file cvmfs.cc.
Referenced by cvmfs_open(), MaxFdMagicXattr::GetValue(), Init(), and RestoreState().
MountPoint* cvmfs::mount_point_ = NULL |
Definition at line 125 of file cvmfs.cc.
Referenced by CheckVoms(), cvmfs_forget(), cvmfs_getattr(), cvmfs_getxattr(), cvmfs_init(), cvmfs_listxattr(), cvmfs_lookup(), cvmfs_open(), cvmfs_opendir(), cvmfs_read(), cvmfs_readdir(), cvmfs_readlink(), cvmfs_release(), cvmfs_releasedir(), cvmfs_statfs(), DoTraceInode(), Evict(), FixupOpenInode(), FuseMain(), GetDirentForInode(), GetDirentForPath(), GetKcacheTimeout(), GetPathForInode(), Init(), MaintenanceMode(), MayBeInPageCacheTracker(), loader::ParseCmdLine(), loader::ParseFuseOptions(), Pin(), PrintInodeGeneration(), RegisterMagicXattrs(), RestoreState(), SaveState(), ShutdownMountpoint(), Spawn(), and TraceInode().
uint64_t cvmfs::next_directory_handle_ = 0 |
Definition at line 160 of file cvmfs.cc.
Referenced by cvmfs_opendir(), and RestoreState().
NotificationClient* cvmfs::notification_client_ = NULL |
Definition at line 127 of file cvmfs.cc.
Referenced by Init(), ShutdownMountpoint(), and Spawn().
OptionsManager* cvmfs::options_mgr_ = NULL |
Definition at line 149 of file cvmfs.cc.
Referenced by Fini(), Init(), and InitOptionsMgr().
pid_t cvmfs::pid_ = 0 |
will be set after daemon()
Definition at line 150 of file cvmfs.cc.
Referenced by PidMagicXattr::GetValue(), TalkManager::MainResponder(), and Spawn().
std::string* cvmfs::repository_name_ |
Definition at line 125 of file loader.cc.
Referenced by FuseMain(), loader::ParseCmdLine(), and loader::ParseFuseOptions().
TalkManager* cvmfs::talk_mgr_ = NULL |
Definition at line 126 of file cvmfs.cc.
Referenced by Init(), ShutdownMountpoint(), and Spawn().
quota::ListenerHandle* cvmfs::unpin_listener_ = NULL |
Definition at line 152 of file cvmfs.cc.
Referenced by ShutdownMountpoint(), Spawn(), and UnregisterQuotaListener().
Watchdog* cvmfs::watchdog_ = NULL |
quota::ListenerHandle* cvmfs::watchdog_listener_ = NULL |
Definition at line 151 of file cvmfs.cc.
Referenced by ShutdownMountpoint(), Spawn(), and UnregisterQuotaListener().