CernVM-FS
2.12.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 bool | IncAndCheckNoOpenFiles () |
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_ |
bool | check_fd_overflow_ = true |
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 857 of file cvmfs.cc.
Referenced by cvmfs_opendir().
|
static |
Definition at line 252 of file cvmfs.cc.
Referenced by cvmfs_getattr(), cvmfs_getxattr(), cvmfs_open(), and cvmfs_opendir().
|
static |
Definition at line 2086 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Definition at line 650 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Transform a cvmfs dirent into a struct stat.
Definition at line 756 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Definition at line 1692 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Do after-daemon() initialization
Definition at line 2018 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Definition at line 1856 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 519 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Open a file from cache. If necessary, file is downloaded first.
Definition at line 1118 of file cvmfs.cc.
Referenced by libcvmfs_do_fopen(), and SetCvmfsOperations().
|
static |
Open a directory for listing.
Definition at line 884 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Redirected to pread into cache.
Definition at line 1371 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Read the directory listing.
Definition at line 1069 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Reads a symlink from the catalog. Environment variables are expanded.
Definition at line 825 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
File close operation, redirected into cache.
Definition at line 1544 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Release a directory.
Definition at line 1020 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 1626 of file cvmfs.cc.
Referenced by SetCvmfsOperations().
|
static |
Definition at line 492 of file cvmfs.cc.
Referenced by TraceInode().
bool cvmfs::Evict | ( | const std::string & | path | ) |
bool cvmfs::Evict | ( | const string & | path | ) |
Definition at line 1919 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
Definition at line 1094 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 294 of file cvmfs.cc.
Referenced by GetDirentForPath().
|
static |
Definition at line 314 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 405 of file cvmfs.cc.
Referenced by cvmfs_lookup(), cvmfs_opendir(), Evict(), and Pin().
|
inlinestatic |
Definition at line 218 of file cvmfs.cc.
Referenced by cvmfs_getattr(), and cvmfs_lookup().
|
static |
Definition at line 458 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 225 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
Definition at line 270 of file cvmfs.cc.
Referenced by cvmfs_getattr().
|
inlinestatic |
Atomic increase of the open files counter. If we use a non-refcounted POSIX cache manager, check for open fd overflow. Return false if too many files are opened. Otherwise return true (success).
Definition at line 211 of file cvmfs.cc.
Referenced by cvmfs_open().
|
static |
Definition at line 265 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 1946 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
std::string cvmfs::PrintInodeGeneration | ( | ) |
Definition at line 241 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
Very large directory listings have to be sent in slices.
Definition at line 1053 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 732 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 2131 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
Puts the callback functions in one single structure
Definition at line 2094 of file cvmfs.cc.
Referenced by __attribute__().
void cvmfs::TLSDestructor | ( | void * | data | ) |
|
inlinestatic |
Definition at line 507 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 2120 of file cvmfs.cc.
Referenced by TalkManager::MainResponder().
|
static |
bool cvmfs::check_fd_overflow_ = true |
The refcounted cache manager should suppress checking the current number of files opened through cvmfs_open() against the process' file descriptor limit.
Definition at line 172 of file cvmfs.cc.
Referenced by IncAndCheckNoOpenFiles(), and Init().
DirectoryHandles* cvmfs::directory_handles_ = NULL |
Definition at line 162 of file cvmfs.cc.
Referenced by cvmfs_readdir(), cvmfs_releasedir(), Init(), RestoreState(), SaveState(), and ShutdownMountpoint().
FileSystem* cvmfs::file_system_ = NULL |
Definition at line 128 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(), IncAndCheckNoOpenFiles(), Init(), Pin(), ReplyNegative(), RestoreState(), SaveState(), and Spawn().
bool cvmfs::foreground_ |
Definition at line 135 of file loader.cc.
Referenced by FuseMain(), loader::ParseCmdLine(), and loader::ParseFuseOptions().
FuseRemounter* cvmfs::fuse_remounter_ = NULL |
Definition at line 133 of file cvmfs.cc.
Referenced by 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 134 of file cvmfs.cc.
Referenced by InodeMaxMagicXattr::FinalizeValue(), 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 180 of file cvmfs.cc.
Referenced by CheckMaxOpenFiles().
const int cvmfs::kNumReservedFd = 512 |
Number of reserved file descriptors for internal use
Definition at line 176 of file cvmfs.cc.
Referenced by MaxFdMagicXattr::FinalizeValue(), and IncAndCheckNoOpenFiles().
const loader::LoaderExports * cvmfs::loader_exports_ = NULL |
Definition at line 152 of file cvmfs.cc.
Referenced by UptimeMagicXattr::FinalizeValue(), FuseMain(), Init(), TalkManager::MainResponder(), loader::Reload(), SendFuseFd(), and UseWatchdog().
pthread_mutex_t cvmfs::lock_directory_handles_ = PTHREAD_MUTEX_INITIALIZER |
Definition at line 163 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 166 of file cvmfs.cc.
Referenced by MaxFdMagicXattr::FinalizeValue(), IncAndCheckNoOpenFiles(), Init(), and RestoreState().
MountPoint* cvmfs::mount_point_ = NULL |
Definition at line 129 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 164 of file cvmfs.cc.
Referenced by cvmfs_opendir(), and RestoreState().
NotificationClient* cvmfs::notification_client_ = NULL |
Definition at line 131 of file cvmfs.cc.
Referenced by Init(), ShutdownMountpoint(), and Spawn().
OptionsManager* cvmfs::options_mgr_ = NULL |
Definition at line 153 of file cvmfs.cc.
Referenced by Fini(), Init(), and InitOptionsMgr().
pid_t cvmfs::pid_ = 0 |
will be set after daemon()
Definition at line 154 of file cvmfs.cc.
Referenced by PidMagicXattr::FinalizeValue(), TalkManager::MainResponder(), PosixQuotaManager::SetCacheMgrPid(), 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 130 of file cvmfs.cc.
Referenced by Init(), ShutdownMountpoint(), and Spawn().
quota::ListenerHandle* cvmfs::unpin_listener_ = NULL |
Definition at line 156 of file cvmfs.cc.
Referenced by ShutdownMountpoint(), Spawn(), and UnregisterQuotaListener().
Watchdog* cvmfs::watchdog_ = NULL |
quota::ListenerHandle* cvmfs::watchdog_listener_ = NULL |
Definition at line 155 of file cvmfs.cc.
Referenced by ShutdownMountpoint(), Spawn(), and UnregisterQuotaListener().