Loading CMakeLists.txt +7 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,13 @@ set_target_properties(spdlog PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/external" ) # Guideline Support Library: https://github.com/microsoft/GSL add_library(gsl INTERFACE) # we cannot use target_include_directories with CMake < 3.11 set_target_properties(gsl PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/external" ) add_subdirectory(external/fmt) set_property(TARGET fmt PROPERTY POSITION_INDEPENDENT_CODE ON) Loading include/client/gkfs_functions.hpp +4 −4 Original line number Diff line number Diff line Loading @@ -76,9 +76,9 @@ ssize_t gkfs_pwrite_ws(int fd, const void* buf, size_t count, off64_t offset); ssize_t gkfs_write(int fd, const void* buf, size_t count); ssize_t gkfs_pwritev(int fd, const struct iovec* iov, int iovcnt, off_t offset); ssize_t gkfs_pwritev(int fd, const struct iovec* iov, unsigned long iovcnt, off_t offset); ssize_t gkfs_writev(int fd, const struct iovec* iov, int iovcnt); ssize_t gkfs_writev(int fd, const struct iovec* iov, unsigned long iovcnt); ssize_t gkfs_pread(std::shared_ptr<gkfs::filemap::OpenFile> file, char* buf, size_t count, off64_t offset); Loading @@ -86,9 +86,9 @@ ssize_t gkfs_pread_ws(int fd, void* buf, size_t count, off64_t offset); ssize_t gkfs_read(int fd, void* buf, size_t count); ssize_t gkfs_readv(int fd, const struct iovec* iov, int iovcnt); ssize_t gkfs_readv(int fd, const struct iovec* iov, unsigned long iovcnt); ssize_t gkfs_preadv(int fd, const struct iovec* iov, int iovcnt, off_t offset); ssize_t gkfs_preadv(int fd, const struct iovec* iov, unsigned long iovcnt, off_t offset); int gkfs_opendir(const std::string& path); Loading include/client/preload_context.hpp +2 −1 Original line number Diff line number Diff line Loading @@ -20,9 +20,10 @@ #include <memory> #include <vector> #include <string> #include <bitset> #include <gsl/gsl> /* Forward declarations */ namespace gkfs { namespace filemap { Loading src/client/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ target_link_libraries(gkfs_intercept mercury hermes fmt::fmt gsl Boost::boost # needed for tokenizer header Threads::Threads Date::TZ Loading src/client/gkfs_functions.cpp +9 −9 Original line number Diff line number Diff line Loading @@ -465,13 +465,13 @@ ssize_t gkfs_write(int fd, const void* buf, size_t count) { return ret; } ssize_t gkfs_pwritev(int fd, const struct iovec* iov, int iovcnt, off_t offset) { ssize_t gkfs_pwritev(int fd, const struct iovec* iov, unsigned long iovcnt, off_t offset) { auto file = CTX->file_map()->get(fd); auto pos = offset; // keep truck of current position ssize_t written = 0; ssize_t ret; for (int i = 0; i < iovcnt; ++i) { for (unsigned long i = 0; i < iovcnt; ++i) { auto count = (iov + i)->iov_len; if (count == 0) { continue; Loading @@ -495,7 +495,7 @@ ssize_t gkfs_pwritev(int fd, const struct iovec* iov, int iovcnt, off_t offset) return written; } ssize_t gkfs_writev(int fd, const struct iovec* iov, int iovcnt) { ssize_t gkfs_writev(int fd, const struct iovec* iov, unsigned long iovcnt) { auto gkfs_fd = CTX->file_map()->get(fd); auto pos = gkfs_fd->pos(); // retrieve the current offset Loading Loading @@ -539,13 +539,13 @@ ssize_t gkfs_read(int fd, void* buf, size_t count) { return ret; } ssize_t gkfs_preadv(int fd, const struct iovec* iov, int iovcnt, off_t offset) { ssize_t gkfs_preadv(int fd, const struct iovec* iov, unsigned long iovcnt, off_t offset) { auto file = CTX->file_map()->get(fd); auto pos = offset; // keep truck of current position ssize_t read = 0; ssize_t ret; for (int i = 0; i < iovcnt; ++i) { for (unsigned long i = 0; i < iovcnt; ++i) { auto count = (iov + i)->iov_len; if (count == 0) { continue; Loading @@ -569,7 +569,7 @@ ssize_t gkfs_preadv(int fd, const struct iovec* iov, int iovcnt, off_t offset) { return read; } ssize_t gkfs_readv(int fd, const struct iovec* iov, int iovcnt) { ssize_t gkfs_readv(int fd, const struct iovec* iov, unsigned long iovcnt) { auto gkfs_fd = CTX->file_map()->get(fd); auto pos = gkfs_fd->pos(); // retrieve the current offset Loading Loading @@ -685,7 +685,7 @@ int gkfs_getdents(unsigned int fd, } // set directory position for next getdents() call open_dir->pos(pos); return written; return gsl::narrow_cast<int>(written); } Loading Loading @@ -743,7 +743,7 @@ int gkfs_getdents64(unsigned int fd, return -1; } open_dir->pos(pos); return written; return gsl::narrow_cast<int>(written); } Loading Loading @@ -793,7 +793,7 @@ int gkfs_readlink(const std::string& path, char* buf, int bufsize) { errno = EINVAL; return -1; } int path_size = md->target_path().size() + CTX->mountdir().size(); auto path_size = gsl::narrow_cast<int>(md->target_path().size() + CTX->mountdir().size()); if (path_size >= bufsize) { LOG(WARNING, "Destination buffer size is too short: {} < {}, {} ", bufsize, path_size, md->target_path()); errno = ENAMETOOLONG; Loading Loading
CMakeLists.txt +7 −0 Original line number Diff line number Diff line Loading @@ -180,6 +180,13 @@ set_target_properties(spdlog PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/external" ) # Guideline Support Library: https://github.com/microsoft/GSL add_library(gsl INTERFACE) # we cannot use target_include_directories with CMake < 3.11 set_target_properties(gsl PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/external" ) add_subdirectory(external/fmt) set_property(TARGET fmt PROPERTY POSITION_INDEPENDENT_CODE ON) Loading
include/client/gkfs_functions.hpp +4 −4 Original line number Diff line number Diff line Loading @@ -76,9 +76,9 @@ ssize_t gkfs_pwrite_ws(int fd, const void* buf, size_t count, off64_t offset); ssize_t gkfs_write(int fd, const void* buf, size_t count); ssize_t gkfs_pwritev(int fd, const struct iovec* iov, int iovcnt, off_t offset); ssize_t gkfs_pwritev(int fd, const struct iovec* iov, unsigned long iovcnt, off_t offset); ssize_t gkfs_writev(int fd, const struct iovec* iov, int iovcnt); ssize_t gkfs_writev(int fd, const struct iovec* iov, unsigned long iovcnt); ssize_t gkfs_pread(std::shared_ptr<gkfs::filemap::OpenFile> file, char* buf, size_t count, off64_t offset); Loading @@ -86,9 +86,9 @@ ssize_t gkfs_pread_ws(int fd, void* buf, size_t count, off64_t offset); ssize_t gkfs_read(int fd, void* buf, size_t count); ssize_t gkfs_readv(int fd, const struct iovec* iov, int iovcnt); ssize_t gkfs_readv(int fd, const struct iovec* iov, unsigned long iovcnt); ssize_t gkfs_preadv(int fd, const struct iovec* iov, int iovcnt, off_t offset); ssize_t gkfs_preadv(int fd, const struct iovec* iov, unsigned long iovcnt, off_t offset); int gkfs_opendir(const std::string& path); Loading
include/client/preload_context.hpp +2 −1 Original line number Diff line number Diff line Loading @@ -20,9 +20,10 @@ #include <memory> #include <vector> #include <string> #include <bitset> #include <gsl/gsl> /* Forward declarations */ namespace gkfs { namespace filemap { Loading
src/client/CMakeLists.txt +1 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ target_link_libraries(gkfs_intercept mercury hermes fmt::fmt gsl Boost::boost # needed for tokenizer header Threads::Threads Date::TZ Loading
src/client/gkfs_functions.cpp +9 −9 Original line number Diff line number Diff line Loading @@ -465,13 +465,13 @@ ssize_t gkfs_write(int fd, const void* buf, size_t count) { return ret; } ssize_t gkfs_pwritev(int fd, const struct iovec* iov, int iovcnt, off_t offset) { ssize_t gkfs_pwritev(int fd, const struct iovec* iov, unsigned long iovcnt, off_t offset) { auto file = CTX->file_map()->get(fd); auto pos = offset; // keep truck of current position ssize_t written = 0; ssize_t ret; for (int i = 0; i < iovcnt; ++i) { for (unsigned long i = 0; i < iovcnt; ++i) { auto count = (iov + i)->iov_len; if (count == 0) { continue; Loading @@ -495,7 +495,7 @@ ssize_t gkfs_pwritev(int fd, const struct iovec* iov, int iovcnt, off_t offset) return written; } ssize_t gkfs_writev(int fd, const struct iovec* iov, int iovcnt) { ssize_t gkfs_writev(int fd, const struct iovec* iov, unsigned long iovcnt) { auto gkfs_fd = CTX->file_map()->get(fd); auto pos = gkfs_fd->pos(); // retrieve the current offset Loading Loading @@ -539,13 +539,13 @@ ssize_t gkfs_read(int fd, void* buf, size_t count) { return ret; } ssize_t gkfs_preadv(int fd, const struct iovec* iov, int iovcnt, off_t offset) { ssize_t gkfs_preadv(int fd, const struct iovec* iov, unsigned long iovcnt, off_t offset) { auto file = CTX->file_map()->get(fd); auto pos = offset; // keep truck of current position ssize_t read = 0; ssize_t ret; for (int i = 0; i < iovcnt; ++i) { for (unsigned long i = 0; i < iovcnt; ++i) { auto count = (iov + i)->iov_len; if (count == 0) { continue; Loading @@ -569,7 +569,7 @@ ssize_t gkfs_preadv(int fd, const struct iovec* iov, int iovcnt, off_t offset) { return read; } ssize_t gkfs_readv(int fd, const struct iovec* iov, int iovcnt) { ssize_t gkfs_readv(int fd, const struct iovec* iov, unsigned long iovcnt) { auto gkfs_fd = CTX->file_map()->get(fd); auto pos = gkfs_fd->pos(); // retrieve the current offset Loading Loading @@ -685,7 +685,7 @@ int gkfs_getdents(unsigned int fd, } // set directory position for next getdents() call open_dir->pos(pos); return written; return gsl::narrow_cast<int>(written); } Loading Loading @@ -743,7 +743,7 @@ int gkfs_getdents64(unsigned int fd, return -1; } open_dir->pos(pos); return written; return gsl::narrow_cast<int>(written); } Loading Loading @@ -793,7 +793,7 @@ int gkfs_readlink(const std::string& path, char* buf, int bufsize) { errno = EINVAL; return -1; } int path_size = md->target_path().size() + CTX->mountdir().size(); auto path_size = gsl::narrow_cast<int>(md->target_path().size() + CTX->mountdir().size()); if (path_size >= bufsize) { LOG(WARNING, "Destination buffer size is too short: {} < {}, {} ", bufsize, path_size, md->target_path()); errno = ENAMETOOLONG; Loading