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

ifs: Metadentry update (+size only update) done + ipc read fix

parent 927bbd1f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ set(SOURCE_FILES main.cpp main.hpp configure.hpp util.cpp
        src/rpc/handler/h_metadentry.cpp
        src/adafs_ops/data.cpp include/adafs_ops/data.hpp src/rpc/handler/h_data.cpp
        src/rpc/handler/h_preload.cpp
        )
        include/rpc/rpc_utils.hpp)
add_executable(adafs_daemon ${SOURCE_FILES})
target_link_libraries(adafs_daemon ${ROCKSDB_LIBRARIES}
        # rocksdb libs
+5 −2
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
#ifndef IFS_METADENTRY_HPP
#define IFS_METADENTRY_HPP

#include <classes/metadata.hpp>
#include "../../main.hpp"

int create_node(const std::string& path, const uid_t uid, const gid_t gid, mode_t mode);
@@ -13,12 +14,14 @@ int create_metadentry(const std::string& path, mode_t mode);

int db_val_to_stat(const std::string& path, std::string db_val, struct stat& attr);

std::string get_attr(const std::string& path);
int get_metadentry(const std::string& path, Metadata& md);

int remove_metadentry(const std::string& path);

int remove_node(const std::string& path);

int update_metadentry_size(const std::string& path, size_t size);
int update_metadentry_size(const std::string& path, off_t size);

int update_metadentry(const std::string& path, Metadata& md);

#endif //IFS_METADENTRY_HPP
+16 −2
Original line number Diff line number Diff line
@@ -39,17 +39,31 @@ MERCURY_GEN_PROC(ipc_stat_out_t, ((hg_int32_t) (err))

MERCURY_GEN_PROC(ipc_unlink_in_t, ((hg_const_string_t) (path)))

MERCURY_GEN_PROC(ipc_update_metadentry_in_t,
MERCURY_GEN_PROC(update_metadentry_in_t,
                 ((hg_const_string_t) (path))\
((uint64_t) (nlink))\
((hg_uint32_t) (mode))\
((hg_uint32_t) (uid))\
((hg_uint32_t) (gid))\
((hg_int64_t) (size))\
((hg_uint64_t) (inode_no))\
((hg_int64_t) (blocks))\
((hg_int64_t) (atime))\
((hg_int64_t) (mtime))\
((hg_int64_t) (ctime)))
((hg_int64_t) (ctime))\
((hg_bool_t) (nlink_flag))\
((hg_bool_t) (mode_flag))\
((hg_bool_t) (uid_flag))\
((hg_bool_t) (gid_flag))\
((hg_bool_t) (size_flag))\
((hg_bool_t) (inode_no_flag))\
((hg_bool_t) (block_flag))\
((hg_bool_t) (atime_flag))\
((hg_bool_t) (mtime_flag))\
((hg_bool_t) (ctime_flag)))

MERCURY_GEN_PROC(update_metadentry_size_in_t, ((hg_const_string_t) (path))
        ((hg_int64_t) (size)))

// data
MERCURY_GEN_PROC(ipc_read_data_in_t,
+2 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ int ipc_send_unlink(const string& path, const hg_id_t ipc_unlink_id);
int ipc_send_update_metadentry(const string& path, const hg_id_t ipc_update_metadentry_id, const Metadentry& md,
                               const MetadentryUpdateFlags& md_flags);

int ipc_send_update_metadentry_size(const string& path, const hg_id_t ipc_update_metadentry_size_id, const off_t size);

int ipc_send_write(const string& path, const size_t in_size, const off_t in_offset,
                   const void* buf, size_t& write_size, const bool append, const hg_id_t ipc_write_id);

+0 −1
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ struct FsConfig {
    size_t host_size;
    std::string rpc_port;
};

// Used to bundle metadata into one place
struct Metadentry {
    time_t atime;
Loading