Loading fs/CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,6 @@ find_package(FUSE3 REQUIRED) find_package(Boost 1.56.0 COMPONENTS system filesystem serialization) include_directories(${FUSE3_INCLUDE_DIR} include/) set(SOURCE_FILES src/main.cpp src/main.h src/fuse_ops.h src/util.cpp src/classes/metadata.h src/classes/metadata.cpp src/adafs_ops/metadata_ops.h src/adafs_ops/metadata_ops.cpp src/adafs_ops/dentry_ops.cpp src/adafs_ops/dentry_ops.h src/configure.h src/fuse_ops/file.cpp src/fuse_ops/directory.cpp src/fuse_ops/access.cpp src/fuse_ops/sync.cpp src/adafs_ops/access.cpp src/adafs_ops/access.h) set(SOURCE_FILES src/main.cpp src/main.h src/fuse_ops.h src/util.cpp src/classes/metadata.h src/classes/metadata.cpp src/adafs_ops/metadata_ops.h src/adafs_ops/metadata_ops.cpp src/adafs_ops/dentry_ops.cpp src/adafs_ops/dentry_ops.h src/configure.h src/fuse_ops/file.cpp src/fuse_ops/directory.cpp src/fuse_ops/access.cpp src/fuse_ops/sync.cpp src/adafs_ops/access.cpp src/adafs_ops/access.h src/fuse_ops/fs.cpp) add_executable(adafs ${SOURCE_FILES} src/main.cpp) target_link_libraries(adafs ${FUSE3_LIBRARIES} -lpthread -lboost_system -lboost_filesystem -lboost_serialization) No newline at end of file fs/src/fuse_ops.h +5 −0 Original line number Diff line number Diff line Loading @@ -28,12 +28,17 @@ int adafs_releasedir(const char* p, struct fuse_file_info* fi); int adafs_mkdir(const char* p, mode_t mode); int adafs_rmdir(const char* p); // int adafs_flush(const char* p, struct fuse_file_info* fi); // permissions int adafs_access(const char* p, int mask); // file system miscellaneous int adafs_statfs(const char* p, struct statvfs* statvfs); void* adafs_init(struct fuse_conn_info* conn, struct fuse_config* cfg); Loading fs/src/fuse_ops/directory.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ int adafs_mkdir(const char *p, mode_t mode) { // XXX create metadata of new file // mode is used here to init metadata auto md = make_unique<Metadata>(S_IFDIR | mode); md->size(4096); // XXX just visual. size computation of directory should be done properly at some point write_all_metadata(*md, ADAFS_DATA->hashf(path.string())); // Init structure to hold dentries of new directory Loading @@ -128,3 +129,10 @@ int adafs_mkdir(const char *p, mode_t mode) { return 0; } /** Remove a directory */ int adafs_rmdir(const char* p) { ADAFS_DATA->logger->debug("##### FUSE FUNC ###### adafs_rmdir() enter: name '{}'", p); // XXX to be implemented for rmdir return 0; } No newline at end of file fs/src/fuse_ops/fs.cpp 0 → 100644 +16 −0 Original line number Diff line number Diff line // // Created by evie on 3/28/17. // #include "../main.h" #include "../fuse_ops.h" /** Get file system statistics * * The 'f_favail', 'f_fsid' and 'f_flag' fields are ignored */ int adafs_statfs(const char* p, struct statvfs* statvfs) { ADAFS_DATA->logger->info("##### FUSE FUNC ###### adafs_statfs() enter: name '{}'", p); // XXX to be implemented for rm -rf return 0; } No newline at end of file fs/src/main.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ static void init_adafs_ops(fuse_operations* ops) { ops->readdir = adafs_readdir; ops->releasedir = adafs_releasedir; ops->mkdir = adafs_mkdir; ops->rmdir = adafs_rmdir; ops->flush = adafs_flush; Loading Loading
fs/CMakeLists.txt +1 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,6 @@ find_package(FUSE3 REQUIRED) find_package(Boost 1.56.0 COMPONENTS system filesystem serialization) include_directories(${FUSE3_INCLUDE_DIR} include/) set(SOURCE_FILES src/main.cpp src/main.h src/fuse_ops.h src/util.cpp src/classes/metadata.h src/classes/metadata.cpp src/adafs_ops/metadata_ops.h src/adafs_ops/metadata_ops.cpp src/adafs_ops/dentry_ops.cpp src/adafs_ops/dentry_ops.h src/configure.h src/fuse_ops/file.cpp src/fuse_ops/directory.cpp src/fuse_ops/access.cpp src/fuse_ops/sync.cpp src/adafs_ops/access.cpp src/adafs_ops/access.h) set(SOURCE_FILES src/main.cpp src/main.h src/fuse_ops.h src/util.cpp src/classes/metadata.h src/classes/metadata.cpp src/adafs_ops/metadata_ops.h src/adafs_ops/metadata_ops.cpp src/adafs_ops/dentry_ops.cpp src/adafs_ops/dentry_ops.h src/configure.h src/fuse_ops/file.cpp src/fuse_ops/directory.cpp src/fuse_ops/access.cpp src/fuse_ops/sync.cpp src/adafs_ops/access.cpp src/adafs_ops/access.h src/fuse_ops/fs.cpp) add_executable(adafs ${SOURCE_FILES} src/main.cpp) target_link_libraries(adafs ${FUSE3_LIBRARIES} -lpthread -lboost_system -lboost_filesystem -lboost_serialization) No newline at end of file
fs/src/fuse_ops.h +5 −0 Original line number Diff line number Diff line Loading @@ -28,12 +28,17 @@ int adafs_releasedir(const char* p, struct fuse_file_info* fi); int adafs_mkdir(const char* p, mode_t mode); int adafs_rmdir(const char* p); // int adafs_flush(const char* p, struct fuse_file_info* fi); // permissions int adafs_access(const char* p, int mask); // file system miscellaneous int adafs_statfs(const char* p, struct statvfs* statvfs); void* adafs_init(struct fuse_conn_info* conn, struct fuse_config* cfg); Loading
fs/src/fuse_ops/directory.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -121,6 +121,7 @@ int adafs_mkdir(const char *p, mode_t mode) { // XXX create metadata of new file // mode is used here to init metadata auto md = make_unique<Metadata>(S_IFDIR | mode); md->size(4096); // XXX just visual. size computation of directory should be done properly at some point write_all_metadata(*md, ADAFS_DATA->hashf(path.string())); // Init structure to hold dentries of new directory Loading @@ -128,3 +129,10 @@ int adafs_mkdir(const char *p, mode_t mode) { return 0; } /** Remove a directory */ int adafs_rmdir(const char* p) { ADAFS_DATA->logger->debug("##### FUSE FUNC ###### adafs_rmdir() enter: name '{}'", p); // XXX to be implemented for rmdir return 0; } No newline at end of file
fs/src/fuse_ops/fs.cpp 0 → 100644 +16 −0 Original line number Diff line number Diff line // // Created by evie on 3/28/17. // #include "../main.h" #include "../fuse_ops.h" /** Get file system statistics * * The 'f_favail', 'f_fsid' and 'f_flag' fields are ignored */ int adafs_statfs(const char* p, struct statvfs* statvfs) { ADAFS_DATA->logger->info("##### FUSE FUNC ###### adafs_statfs() enter: name '{}'", p); // XXX to be implemented for rm -rf return 0; } No newline at end of file
fs/src/main.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -80,6 +80,7 @@ static void init_adafs_ops(fuse_operations* ops) { ops->readdir = adafs_readdir; ops->releasedir = adafs_releasedir; ops->mkdir = adafs_mkdir; ops->rmdir = adafs_rmdir; ops->flush = adafs_flush; Loading