Commit 00e69aaf authored by Marc Vef's avatar Marc Vef
Browse files

adafs_ll_init, adafs_ll_destroy, adafs_ll_getattr first cut with low-level...

adafs_ll_init, adafs_ll_destroy, adafs_ll_getattr first cut with low-level API. Metadata only for root and temporary.
parent e6da94a8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -19,6 +19,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/classes/metadata.h src/classes/metadata.cpp)
set(SOURCE_FILES src/main.cpp src/main.h src/fuse_ops.h src/classes/metadata.h src/classes/metadata.cpp src/util.cpp src/fuse_ops/file.cpp)
add_executable(adafs ${SOURCE_FILES} src/main.cpp)
target_link_libraries(adafs ${FUSE3_LIBRARIES} -lpthread -lboost_system -lboost_filesystem -lboost_serialization -pg)
 No newline at end of file
+18 −4
Original line number Diff line number Diff line
@@ -98,19 +98,33 @@ Metadata::Metadata() : atime_(),
                       size_(0),
                       blocks_(0) {}

Metadata::Metadata(mode_t mode, fuse_req_t& req) :
Metadata::Metadata(mode_t mode, uint32_t uid, uint32_t gid, fuse_req_t& req) :
        atime_(),
        mtime_(),
        ctime_(),
        uid_(fuse_req_ctx(req)->uid),
        gid_(fuse_req_ctx(req)->gid),
        uid_(uid),
        gid_(uid),
        mode_(mode),
        inode_no_(0),
        link_count_(0),
        size_(0),
        blocks_(0) {
    init_ACM_time();
//    inode_no_ = util::generate_inode_no();
    inode_no_ = util::generate_inode_no(ADAFS_DATA(req)->inode_mutex, ADAFS_DATA(req)->inode_count);
}

Metadata::Metadata(mode_t mode, uint32_t uid, uint32_t gid, uint64_t inode) :
        atime_(),
        mtime_(),
        ctime_(),
        uid_(uid),
        gid_(gid),
        mode_(mode),
        inode_no_(inode),
        link_count_(0),
        size_(0),
        blocks_(0) {
    init_ACM_time();
}

void Metadata::init_ACM_time() {
+3 −1
Original line number Diff line number Diff line
@@ -23,7 +23,9 @@ private:
public:
    Metadata();

    Metadata(mode_t mode, fuse_req_t& req);
    Metadata(mode_t mode, uint32_t uid, uint32_t gid, fuse_req_t& req);

    Metadata(mode_t mode, uint32_t uid, uint32_t gid, uint64_t inode);

    void init_ACM_time();

+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@

// To enabled logging with info level
//#define LOG_INFO
//#define LOG_DEBUG
#define LOG_DEBUG

// If ACM time should be considered
//#define ACMtime
+3 −3
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@
#include "main.h"

// file

void adafs_ll_getattr(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info* fi);


// directory
@@ -30,8 +30,8 @@
// file system miscellaneous


void adafs_init(void* adafs_data, struct fuse_conn_info* conn);
void adafs_ll_init(void* adafs_data, struct fuse_conn_info* conn);

void adafs_destroy(void* adafs_data);
void adafs_ll_destroy(void* adafs_data);

#endif //FS_FUSE_OPS_H
Loading