From: Michael Tremer Date: Wed, 17 Aug 2022 17:53:08 +0000 (+0000) Subject: util: Speed up pakfire_rmtree() X-Git-Tag: 0.9.28~465 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be2df710451442ead42e922de4d609c22147b007;p=pakfire.git util: Speed up pakfire_rmtree() We can already call rmdir() if we know that we have a directory instead of trying unlink() first and then falling back. Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/util.c b/src/libpakfire/util.c index ff8523a7a..e051d3abc 100644 --- a/src/libpakfire/util.c +++ b/src/libpakfire/util.c @@ -1054,8 +1054,14 @@ char* pakfire_mkdtemp(char* path) { return mkdtemp(path); } -static int _unlink(const char* path, const struct stat* stat, int typeflag, struct FTW* ftwbuf) { - return remove(path); +static int _unlink(const char* path, const struct stat* stat, + const int type, struct FTW* ftwbuf) { + // Delete directories using rmdir() + if (type & FTW_D) + return rmdir(path); + + // unlink() everything else + return unlink(path); } int pakfire_rmtree(const char* path, int flags) {