From b86efb2d9ba274ee98759ae0da6f72ab3d964e31 Mon Sep 17 00:00:00 2001 From: Chalith Desaman Date: Wed, 9 Dec 2020 13:43:34 +0530 Subject: [PATCH] Recursively deleting directories during state sync. (#189) --- src/state/state_sync.cpp | 2 +- src/util/util.cpp | 13 +++++++++++++ src/util/util.hpp | 2 ++ test/bin/hpfs | Bin 215192 -> 258432 bytes 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/state/state_sync.cpp b/src/state/state_sync.cpp index ac3fa111..d5c88e1a 100644 --- a/src/state/state_sync.cpp +++ b/src/state/state_sync.cpp @@ -374,7 +374,7 @@ namespace state_sync std::string child_physical_path = std::string(ctx.hpfs_mount_dir).append(child_vpath); if ((ex_entry.is_file && unlink(child_physical_path.c_str()) == -1) || - !ex_entry.is_file && rmdir(child_physical_path.c_str()) == -1) + !ex_entry.is_file && util::remove_directory_recursively(child_physical_path.c_str()) == -1) return -1; LOG_DEBUG << "State sync: Deleted " << (ex_entry.is_file ? "file" : "dir") << " path " << child_vpath; diff --git a/src/util/util.cpp b/src/util/util.cpp index 49635f9e..9607ff9d 100644 --- a/src/util/util.cpp +++ b/src/util/util.cpp @@ -314,6 +314,19 @@ namespace util 1, FTW_PHYS); } + /** + * Remove a directory recursively with it's content. FTW_DEPTH is provided so all of the files and subdirectories within + * The path will be processed. FTW_PHYS is provided so symbolic links won't be followed. + */ + int remove_directory_recursively(std::string_view dir_path) + { + return nftw( + dir_path.data(), [](const char *fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf) { + return remove(fpath); + }, + 1, FTW_DEPTH | FTW_PHYS); + } + void split_string(std::vector &collection, std::string_view str, std::string_view delimeter) { if (str.empty()) diff --git a/src/util/util.hpp b/src/util/util.hpp index 034c7000..9c26e1cd 100644 --- a/src/util/util.hpp +++ b/src/util/util.hpp @@ -74,6 +74,8 @@ namespace util int clear_directory(std::string_view dir_path); + int remove_directory_recursively(std::string_view dir_path); + void split_string(std::vector &collection, std::string_view str, std::string_view delimeter); int stoull(const std::string &str, uint64_t &result); diff --git a/test/bin/hpfs b/test/bin/hpfs index 825a07a6410c6cc549d16a76b8e7cb58c20dcc71..4e87d70af8bf7feba7ba76a37efd38f682b08364 100755 GIT binary patch delta 61267 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 delta 26201 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 qwPADl5m9_@;Pen_$YtQ|0EPJ