Loading CHANGELOG.md +3 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,9 @@ replicas ([!166](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/141) ### New - Rewrite of the resolve path function to improve performance by making the use of syscall for following symlinks optional ([!183](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/183)). - Support for client-side per process logging, activated with `LIBGKFS_LOG_PER_PROCESS` ([!179](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/179)). - Support mtime with option gkfs::config::metadata:: Loading CMake/gkfs-options.cmake +16 −0 Original line number Diff line number Diff line Loading @@ -241,6 +241,14 @@ gkfs_define_option( DEFAULT_VALUE OFF ) # use old resolve function gkfs_define_option( GKFS_USE_LEGACY_PATH_RESOLVE HELP_TEXT "Use the old implementation of the resolve function" DEFAULT_VALUE OFF ) cmake_dependent_option(GKFS_INSTALL_TESTS "Install GekkoFS self tests" OFF "GKFS_BUILD_TESTS" OFF) Loading Loading @@ -272,6 +280,14 @@ gkfs_define_option( DESCRIPTION "Compile with support for rename ops (experimental)" ) ## external link support gkfs_define_option( GKFS_FOLLOW_EXTERNAL_SYMLINKS HELP_TEXT "Enable support for following external links for resolving the path" DEFAULT_VALUE OFF DESCRIPTION "Compile with lstat usage in path resolve" ) ################################################################################ # Options and variables that control how GekkoFS behaves internally Loading CMakeLists.txt +8 −0 Original line number Diff line number Diff line Loading @@ -271,6 +271,14 @@ if (GKFS_SYMLINK_SUPPORT) add_definitions(-DHAS_SYMLINKS) endif () if (GKFS_USE_LEGACY_PATH_RESOLVE) add_definitions(-DGKFS_USE_LEGACY_PATH_RESOLVE) endif () if (GKFS_FOLLOW_EXTERNAL_SYMLINKS) add_definitions(-DGKFS_FOLLOW_EXTERNAL_SYMLINKS) endif () if (GKFS_RENAME_SUPPORT) # Rename depends on symlink support add_definitions(-DHAS_SYMLINKS) Loading CMakePresets.json +1 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ "GKFS_CHUNK_STATS": true, "GKFS_ENABLE_PROMETHEUS": true, "GKFS_RENAME_SUPPORT": true, "GKFS_FOLLOW_EXTERNAL_SYMLINKS": true, "GKFS_MAX_OPEN_FDS": "10000", "GKFS_MAX_INTERNAL_FDS": "1024" } Loading include/client/path.hpp +10 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,16 @@ unsigned int match_components(const std::string& path, unsigned int& path_components, const std::vector<std::string>& components); bool /// @resolve_last_link is used only for the old implementation: /// GKFS_USE_LEGACY_PATH_RESOLVE std::pair<bool, std::string> resolve(const std::string& path, bool resolve_last_link = true); std::pair<bool, std::string> resolve_new(const std::string& path); [[deprecated( "Use GKFS_USE_LEGACY_PATH_RESOLVE to use old implementation")]] bool resolve(const std::string& path, std::string& resolved, bool resolve_last_link = true); Loading Loading
CHANGELOG.md +3 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,9 @@ replicas ([!166](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/141) ### New - Rewrite of the resolve path function to improve performance by making the use of syscall for following symlinks optional ([!183](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/183)). - Support for client-side per process logging, activated with `LIBGKFS_LOG_PER_PROCESS` ([!179](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/179)). - Support mtime with option gkfs::config::metadata:: Loading
CMake/gkfs-options.cmake +16 −0 Original line number Diff line number Diff line Loading @@ -241,6 +241,14 @@ gkfs_define_option( DEFAULT_VALUE OFF ) # use old resolve function gkfs_define_option( GKFS_USE_LEGACY_PATH_RESOLVE HELP_TEXT "Use the old implementation of the resolve function" DEFAULT_VALUE OFF ) cmake_dependent_option(GKFS_INSTALL_TESTS "Install GekkoFS self tests" OFF "GKFS_BUILD_TESTS" OFF) Loading Loading @@ -272,6 +280,14 @@ gkfs_define_option( DESCRIPTION "Compile with support for rename ops (experimental)" ) ## external link support gkfs_define_option( GKFS_FOLLOW_EXTERNAL_SYMLINKS HELP_TEXT "Enable support for following external links for resolving the path" DEFAULT_VALUE OFF DESCRIPTION "Compile with lstat usage in path resolve" ) ################################################################################ # Options and variables that control how GekkoFS behaves internally Loading
CMakeLists.txt +8 −0 Original line number Diff line number Diff line Loading @@ -271,6 +271,14 @@ if (GKFS_SYMLINK_SUPPORT) add_definitions(-DHAS_SYMLINKS) endif () if (GKFS_USE_LEGACY_PATH_RESOLVE) add_definitions(-DGKFS_USE_LEGACY_PATH_RESOLVE) endif () if (GKFS_FOLLOW_EXTERNAL_SYMLINKS) add_definitions(-DGKFS_FOLLOW_EXTERNAL_SYMLINKS) endif () if (GKFS_RENAME_SUPPORT) # Rename depends on symlink support add_definitions(-DHAS_SYMLINKS) Loading
CMakePresets.json +1 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ "GKFS_CHUNK_STATS": true, "GKFS_ENABLE_PROMETHEUS": true, "GKFS_RENAME_SUPPORT": true, "GKFS_FOLLOW_EXTERNAL_SYMLINKS": true, "GKFS_MAX_OPEN_FDS": "10000", "GKFS_MAX_INTERNAL_FDS": "1024" } Loading
include/client/path.hpp +10 −1 Original line number Diff line number Diff line Loading @@ -36,7 +36,16 @@ unsigned int match_components(const std::string& path, unsigned int& path_components, const std::vector<std::string>& components); bool /// @resolve_last_link is used only for the old implementation: /// GKFS_USE_LEGACY_PATH_RESOLVE std::pair<bool, std::string> resolve(const std::string& path, bool resolve_last_link = true); std::pair<bool, std::string> resolve_new(const std::string& path); [[deprecated( "Use GKFS_USE_LEGACY_PATH_RESOLVE to use old implementation")]] bool resolve(const std::string& path, std::string& resolved, bool resolve_last_link = true); Loading