![]() |
XRootD
|
#include <cstdio>
#include <cstdlib>
#include <unistd.h>
#include <stddef.h>
#include <fuse.h>
#include <fuse/fuse_opt.h>
#include <cctype>
#include <cstring>
#include <fcntl.h>
#include <dirent.h>
#include <cerrno>
#include <sys/time.h>
#include <pthread.h>
#include <pwd.h>
#include <libgen.h>
#include <syslog.h>
#include <signal.h>
#include <sys/xattr.h>
#include "XrdFfs/XrdFfsPosix.hh"
#include "XrdFfs/XrdFfsMisc.hh"
#include "XrdFfs/XrdFfsWcache.hh"
#include "XrdFfs/XrdFfsQueue.hh"
#include "XrdFfs/XrdFfsFsinfo.hh"
#include "XrdPosix/XrdPosixXrootd.hh"
Go to the source code of this file.
Classes | |
struct | XROOTDFS |
Macros | |
#define | FUSE_USE_VERSION 26 |
#define | MAXROOTURLLEN 1024 |
Enumerations | |
enum | { OPT_KEY_HELP , OPT_KEY_SECSSS } |
Functions | |
int | main (int argc, char *argv[]) |
void * | XrdFfsMisc_logging_url_cache_pthread_create_cast (void *arg) |
static int | xrootdfs_access (const char *path, int mask) |
static int | xrootdfs_chmod (const char *path, mode_t mode) |
static int | xrootdfs_chown (const char *path, uid_t uid, gid_t gid) |
static int | xrootdfs_create (const char *path, mode_t mode, struct fuse_file_info *fi) |
static int | xrootdfs_do_create (const char *path, const char *url, int oflags, bool use_link_id, int *fd) |
static int | xrootdfs_fsync (const char *path, int isdatasync, struct fuse_file_info *fi) |
static int | xrootdfs_ftruncate (const char *path, off_t size, struct fuse_file_info *fi) |
static int | xrootdfs_getattr (const char *path, struct stat *stbuf) |
static int | xrootdfs_getxattr (const char *path, const char *name, char *value, size_t size) |
static void * | xrootdfs_init (struct fuse_conn_info *conn) |
static int | xrootdfs_link (const char *from, const char *to) |
static int | xrootdfs_listxattr (const char *path, char *list, size_t size) |
static int | xrootdfs_mkdir (const char *path, mode_t mode) |
static int | xrootdfs_mknod (const char *path, mode_t mode, dev_t rdev) |
static int | xrootdfs_open (const char *path, struct fuse_file_info *fi) |
static int | xrootdfs_opt_proc (void *data, const char *arg, int key, struct fuse_args *outargs) |
static int | xrootdfs_read (const char *path, char *buf, size_t size, off_t offset, struct fuse_file_info *fi) |
static int | xrootdfs_readdir (const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi) |
static int | xrootdfs_readlink (const char *path, char *buf, size_t size) |
static int | xrootdfs_release (const char *path, struct fuse_file_info *fi) |
static int | xrootdfs_removexattr (const char *path, const char *name) |
static int | xrootdfs_rename (const char *from, const char *to) |
static int | xrootdfs_rmdir (const char *path) |
static int | xrootdfs_setxattr (const char *path, const char *name, const char *value, size_t size, int flags) |
void | xrootdfs_sigusr1_handler (int sig) |
static int | xrootdfs_statfs (const char *path, struct statvfs *stbuf) |
static int | xrootdfs_symlink (const char *from, const char *to) |
static int | xrootdfs_truncate (const char *path, off_t size) |
static int | xrootdfs_unlink (const char *path) |
static void | xrootdfs_usage (const char *progname) |
static int | xrootdfs_utimens (const char *path, const struct timespec ts[2]) |
static int | xrootdfs_write (const char *path, const char *buf, size_t size, off_t offset, struct fuse_file_info *fi) |
Variables | |
int | cwdfd |
bool | usingEC = false |
struct XROOTDFS | xrootdfs |
static struct fuse_operations | xrootdfs_oper |
static struct fuse_opt | xrootdfs_opts [14] |
struct XROOTDFS |
Definition at line 72 of file XrdFfsXrootdfs.cc.
Class Members | ||
---|---|---|
char * | cns | |
char * | daemon_user | |
char * | fastls | |
int | maxfd | |
int | nworkers | |
bool | ofsfwd | |
char * | rdr | |
char * | ssskeytab | |
char * | urlcachelife |
#define FUSE_USE_VERSION 26 |
Definition at line 30 of file XrdFfsXrootdfs.cc.
#define MAXROOTURLLEN 1024 |
Definition at line 70 of file XrdFfsXrootdfs.cc.
Referenced by xrootdfs_do_create(), xrootdfs_getattr(), xrootdfs_getxattr(), xrootdfs_mkdir(), xrootdfs_open(), xrootdfs_readdir(), xrootdfs_release(), xrootdfs_rename(), xrootdfs_rmdir(), xrootdfs_truncate(), and xrootdfs_unlink().
anonymous enum |
int main | ( | int | argc, |
char * | argv[] ) |
Definition at line 1314 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, cwdfd, XROOTDFS::daemon_user, XROOTDFS::fastls, XROOTDFS::maxfd, XROOTDFS::nworkers, XROOTDFS::ofsfwd, open, OPT_KEY_HELP, OPT_KEY_SECSSS, XROOTDFS::rdr, XROOTDFS::ssskeytab, XROOTDFS::urlcachelife, usingEC, xrootdfs, xrootdfs_access(), xrootdfs_chmod(), xrootdfs_chown(), xrootdfs_create(), xrootdfs_fsync(), xrootdfs_ftruncate(), xrootdfs_getattr(), xrootdfs_getxattr(), xrootdfs_init(), xrootdfs_link(), xrootdfs_listxattr(), xrootdfs_mkdir(), xrootdfs_mknod(), xrootdfs_open(), xrootdfs_oper, xrootdfs_opt_proc(), xrootdfs_opts, xrootdfs_read(), xrootdfs_readdir(), xrootdfs_readlink(), xrootdfs_release(), xrootdfs_removexattr(), xrootdfs_rename(), xrootdfs_rmdir(), xrootdfs_setxattr(), xrootdfs_sigusr1_handler(), xrootdfs_statfs(), xrootdfs_symlink(), xrootdfs_truncate(), xrootdfs_unlink(), xrootdfs_utimens(), and xrootdfs_write().
void * XrdFfsMisc_logging_url_cache_pthread_create_cast | ( | void * | arg | ) |
Definition at line 1234 of file XrdFfsXrootdfs.cc.
References XrdFfsMisc_logging_url_cache().
Referenced by xrootdfs_sigusr1_handler().
|
static |
Definition at line 283 of file XrdFfsXrootdfs.cc.
Referenced by main().
|
static |
Definition at line 674 of file XrdFfsXrootdfs.cc.
Referenced by main().
|
static |
Definition at line 686 of file XrdFfsXrootdfs.cc.
Referenced by main().
|
static |
Definition at line 443 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, XROOTDFS::rdr, usingEC, XrdFfsPosix_close(), XrdFfsWcache_create(), xrootdfs, and xrootdfs_do_create().
Referenced by main().
|
static |
Definition at line 371 of file XrdFfsXrootdfs.cc.
References MAXROOTURLLEN, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), and XrdFfsPosix_open().
Referenced by xrootdfs_create(), and xrootdfs_mknod().
|
static |
Definition at line 1026 of file XrdFfsXrootdfs.cc.
References XrdFfsPosix_fsync(), and XrdFfsWcache_flush().
Referenced by main().
|
static |
Definition at line 699 of file XrdFfsXrootdfs.cc.
References XrdFfsPosix_ftruncate(), and XrdFfsWcache_flush().
Referenced by main().
|
static |
Definition at line 166 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, XROOTDFS::fastls, MAXROOTURLLEN, XROOTDFS::rdr, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_stat(), XrdFfsPosix_statall(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 1071 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, MAXROOTURLLEN, XROOTDFS::rdr, XrdFfs_MAX_NUM_NODES, XrdFfsMisc_get_list_of_data_servers(), XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_getxattr(), XrdFfsQueue_count_workers(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 93 of file XrdFfsXrootdfs.cc.
References close, cwdfd, XROOTDFS::daemon_user, XrdPosixXrootd::fdOrigin(), XROOTDFS::maxfd, XROOTDFS::nworkers, XROOTDFS::rdr, XROOTDFS::urlcachelife, XrdFfsMisc_xrd_init(), XrdFfsQueue_count_workers(), XrdFfsQueue_create_workers(), XrdFfsWcache_init(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 662 of file XrdFfsXrootdfs.cc.
Referenced by main().
|
static |
Definition at line 1202 of file XrdFfsXrootdfs.cc.
Referenced by main().
|
static |
Definition at line 472 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, MAXROOTURLLEN, XROOTDFS::rdr, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_clear_from_rdr_cache(), XrdFfsPosix_mkdir(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 403 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, XROOTDFS::rdr, XrdFfsPosix_close(), xrootdfs, and xrootdfs_do_create().
Referenced by main().
|
static |
Definition at line 782 of file XrdFfsXrootdfs.cc.
References MAXROOTURLLEN, XROOTDFS::rdr, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_open(), XrdFfsWcache_create(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 1289 of file XrdFfsXrootdfs.cc.
References OPT_KEY_HELP, OPT_KEY_SECSSS, xrootdfs_oper, and xrootdfs_usage().
Referenced by main().
|
static |
!! TO DO: Remove offset test once XrdClEC read regression is fixed
Definition at line 809 of file XrdFfsXrootdfs.cc.
References XrdPosixXrootd::Fstat(), O_DIRECT, stat, usingEC, XrdFfsPosix_pread(), XrdFfsWcache_flush(), and XrdFfsWcache_pread().
Referenced by main().
|
static |
Definition at line 308 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, MAXROOTURLLEN, XROOTDFS::rdr, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_closedir(), XrdFfsPosix_opendir(), XrdFfsPosix_readdir(), XrdFfsPosix_readdirall(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 294 of file XrdFfsXrootdfs.cc.
Referenced by main().
|
static |
Definition at line 931 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, MAXROOTURLLEN, XROOTDFS::rdr, stat, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_close(), XrdFfsPosix_getxattr(), XrdFfsPosix_lseek(), XrdFfsPosix_open(), XrdFfsPosix_stat(), XrdFfsPosix_write(), XrdFfsWcache_destroy(), XrdFfsWcache_flush(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 1213 of file XrdFfsXrootdfs.cc.
Referenced by main().
|
static |
Definition at line 605 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, MAXROOTURLLEN, XROOTDFS::ofsfwd, XROOTDFS::rdr, stat, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_clear_from_rdr_cache(), XrdFfsPosix_rename(), XrdFfsPosix_renameall(), XrdFfsPosix_stat(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 545 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, MAXROOTURLLEN, XROOTDFS::ofsfwd, XROOTDFS::rdr, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_rmdir(), XrdFfsPosix_rmdirall(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 1038 of file XrdFfsXrootdfs.cc.
References XROOTDFS::rdr, XrdFfsMisc_logging_url_cache(), XrdFfsMisc_refresh_url_cache(), XrdFfsQueue_count_workers(), XrdFfsQueue_create_workers(), XrdFfsQueue_remove_workers(), and xrootdfs.
Referenced by main().
void xrootdfs_sigusr1_handler | ( | int | sig | ) |
Definition at line 1240 of file XrdFfsXrootdfs.cc.
References XROOTDFS::rdr, XrdFfsMisc_logging_url_cache_pthread_create_cast(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 864 of file XrdFfsXrootdfs.cc.
References XROOTDFS::rdr, XrdFfsFsinfo_cache_search(), XrdFfsPosix_statvfsall(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 593 of file XrdFfsXrootdfs.cc.
Referenced by main().
|
static |
Definition at line 729 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, MAXROOTURLLEN, XROOTDFS::ofsfwd, XROOTDFS::rdr, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_truncate(), XrdFfsPosix_truncateall(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 510 of file XrdFfsXrootdfs.cc.
References XROOTDFS::cns, MAXROOTURLLEN, XROOTDFS::ofsfwd, XROOTDFS::rdr, XrdFfsMisc_xrd_secsss_editurl(), XrdFfsMisc_xrd_secsss_register(), XrdFfsPosix_unlink(), XrdFfsPosix_unlinkall(), and xrootdfs.
Referenced by main().
|
static |
Definition at line 1262 of file XrdFfsXrootdfs.cc.
Referenced by xrootdfs_opt_proc().
|
static |
Definition at line 764 of file XrdFfsXrootdfs.cc.
Referenced by main().
|
static |
Definition at line 845 of file XrdFfsXrootdfs.cc.
References XrdFfsWcache_pwrite().
Referenced by main().
int cwdfd |
Definition at line 84 of file XrdFfsXrootdfs.cc.
Referenced by main(), and xrootdfs_init().
bool usingEC = false |
Definition at line 91 of file XrdFfsXrootdfs.cc.
Referenced by main(), xrootdfs_create(), and xrootdfs_read().
struct XROOTDFS xrootdfs |
Definition at line 86 of file XrdFfsXrootdfs.cc.
Referenced by main(), xrootdfs_create(), xrootdfs_getattr(), xrootdfs_getxattr(), xrootdfs_init(), xrootdfs_mkdir(), xrootdfs_mknod(), xrootdfs_open(), xrootdfs_readdir(), xrootdfs_release(), xrootdfs_rename(), xrootdfs_rmdir(), xrootdfs_setxattr(), xrootdfs_sigusr1_handler(), xrootdfs_statfs(), xrootdfs_truncate(), and xrootdfs_unlink().
|
static |
Definition at line 1260 of file XrdFfsXrootdfs.cc.
Referenced by main(), and xrootdfs_opt_proc().
|
static |
Definition at line 87 of file XrdFfsXrootdfs.cc.
Referenced by main().