diff options
-rw-r--r-- | ctdb/common/ctdb_util.c | 14 | ||||
-rw-r--r-- | ctdb/include/ctdb_private.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/ctdb/common/ctdb_util.c b/ctdb/common/ctdb_util.c index d4f85416c0c..7a70fea9cd7 100644 --- a/ctdb/common/ctdb_util.c +++ b/ctdb/common/ctdb_util.c @@ -811,3 +811,17 @@ void ctdb_set_runstate(struct ctdb_context *ctdb, enum ctdb_runstate runstate) runstate_to_string(runstate), runstate)); ctdb->runstate = runstate; } + +void ctdb_mkdir_p_or_die(struct ctdb_context *ctdb, const char *dir, int mode) +{ + int ret; + + ret = mkdir_p(dir, mode); + if (ret != 0) { + DEBUG(DEBUG_ALERT, + ("ctdb exiting with error: " + "failed to create directory \"%s\" (%s)\n", + dir, strerror(ret))); + exit(1); + } +} diff --git a/ctdb/include/ctdb_private.h b/ctdb/include/ctdb_private.h index bc0b8d52d83..e961b9310a1 100644 --- a/ctdb/include/ctdb_private.h +++ b/ctdb/include/ctdb_private.h @@ -1589,5 +1589,6 @@ struct lock_request *ctdb_lock_alldb(struct ctdb_context *ctdb, void *private_data); int mkdir_p(const char *dir, int mode); +void ctdb_mkdir_p_or_die(struct ctdb_context *ctdb, const char *dir, int mode); #endif |