diff options
author | David Mulder <dmulder@suse.com> | 2017-03-08 08:33:56 -0700 |
---|---|---|
committer | Garming Sam <garming@samba.org> | 2017-11-20 21:41:14 +0100 |
commit | 6159b8eb6a6df0743c35c9cf533c4cc1883c72c2 (patch) | |
tree | f590b1e6bfb29b89a9df548cc52925a61ad441be /ctdb/common | |
parent | a80296b12e38ef3fb8d4601f0e0564c294f9dbc9 (diff) | |
download | samba-6159b8eb6a6df0743c35c9cf533c4cc1883c72c2.tar.gz |
gpo: move mkdir_p to lib/util
Move the mkdir_p function to lib/util so it can be used elsewhere
Signed-off-by: David Mulder <dmulder@suse.com>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'ctdb/common')
-rw-r--r-- | ctdb/common/system.h | 1 | ||||
-rw-r--r-- | ctdb/common/system_util.c | 49 |
2 files changed, 2 insertions, 48 deletions
diff --git a/ctdb/common/system.h b/ctdb/common/system.h index ae01c58cfed..e6f65b5e621 100644 --- a/ctdb/common/system.h +++ b/ctdb/common/system.h @@ -53,7 +53,6 @@ bool parse_ip_mask(const char *str, const char *ifaces, ctdb_sock_addr *addr, void lockdown_memory(bool valgrinding); -int mkdir_p(const char *dir, int mode); void mkdir_p_or_die(const char *dir, int mode); void ctdb_wait_for_process_to_exit(pid_t pid); diff --git a/ctdb/common/system_util.c b/ctdb/common/system_util.c index 63dcd53795b..f27eed7038d 100644 --- a/ctdb/common/system_util.c +++ b/ctdb/common/system_util.c @@ -41,6 +41,8 @@ #include <procinfo.h> #endif +#include "lib/util/mkdir_p.h" + /* if possible, make this task real time */ @@ -272,53 +274,6 @@ void lockdown_memory(bool valgrinding) #endif } -int mkdir_p(const char *dir, int mode) -{ - char t[PATH_MAX]; - ssize_t len; - int ret; - - if (strcmp(dir, "/") == 0) { - return 0; - } - - if (strcmp(dir, ".") == 0) { - return 0; - } - - /* Try to create directory */ - ret = mkdir(dir, mode); - /* Succeed if that worked or if it already existed */ - if (ret == 0 || errno == EEXIST) { - return 0; - } - /* Fail on anything else except ENOENT */ - if (errno != ENOENT) { - return ret; - } - - /* Create ancestors */ - len = strlen(dir); - if (len >= PATH_MAX) { - errno = ENAMETOOLONG; - return -1; - } - strncpy(t, dir, len+1); - - ret = mkdir_p(dirname(t), mode); - if (ret != 0) { - return ret; - } - - /* Create directory */ - ret = mkdir(dir, mode); - if ((ret == -1) && (errno == EEXIST)) { - ret = 0; - } - - return ret; -} - void mkdir_p_or_die(const char *dir, int mode) { int ret; |