+int mkdir_parents(const char *path, mode_t mode) {
+ return mkdir_parents_internal(NULL, path, mode, false);
+}
+
+int mkdir_parents_label(const char *path, mode_t mode) {
+ return mkdir_parents_internal(NULL, path, mode, true);
+}
+
+int mkdir_parents_prefix(const char *prefix, const char *path, mode_t mode) {
+ return mkdir_parents_internal(prefix, path, mode, true);
+}
+
+static int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, bool apply) {