Commit f1c419f4 authored by Marc Vef's avatar Marc Vef
Browse files

fuse skeletons for rm -rf and rmdir bash commands

parent f246bb00
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+5 −0
Original line number Diff line number Diff line
@@ -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);

+9 −1
Original line number Diff line number Diff line
@@ -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
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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;