} MkdirFlags;
int mkdirat_errno_wrapper(int dirfd, const char *pathname, mode_t mode);
+
int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
int mkdir_parents(const char *path, mode_t mode);
int mkdir_parents_safe(const char *prefix, const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
int mkdir_p(const char *path, mode_t mode);
int mkdir_p_safe(const char *prefix, const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
+int mkdir_p_root(const char *root, const char *p, uid_t uid, gid_t gid, mode_t m);
-/* mandatory access control(MAC) versions */
-int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
-int mkdir_parents_label(const char *path, mode_t mod);
-int mkdir_p_label(const char *path, mode_t mode);
-
-/* internally used */
+/* The following are used to implement the mkdir_xyz_label() calls, don't use otherwise. */
typedef int (*mkdirat_func_t)(int dir_fd, const char *pathname, mode_t mode);
int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdirat_func_t _mkdir);
int mkdir_parents_internal(const char *prefix, const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdirat_func_t _mkdir);
int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags, mkdirat_func_t _mkdir);
-
-int mkdir_p_root(const char *root, const char *p, uid_t uid, gid_t gid, mode_t m);
#include "format-util.h"
#include "io-util.h"
#include "label.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "mount.h"
#include "mountpoint-util.h"
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "core-varlink.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "strv.h"
#include "user-util.h"
#include "varlink.h"
#include "fd-util.h"
#include "fs-util.h"
#include "log.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "process-util.h"
#include "selinux-access.h"
#include "serialize.h"
#include "memory-util.h"
#include "missing_fs.h"
#include "missing_ioprio.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "namespace.h"
#include "generator-setup.h"
#include "macro.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "rm-rf.h"
int lookup_paths_mkdir_generator(LookupPaths *p) {
#include "manager.h"
#include "manager-dump.h"
#include "manager-serialize.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-setup.h"
#include "os-util.h"
#include "pager.h"
#include "manager-dump.h"
#include "manager-serialize.h"
#include "memory-util.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-lookup.h"
#include "path-util.h"
#include "libmount-util.h"
#include "log.h"
#include "manager.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-setup.h"
#include "mount.h"
#include "mountpoint-util.h"
#include "list.h"
#include "loop-util.h"
#include "loopback-setup.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "namespace-util.h"
#include "glob-util.h"
#include "inotify-util.h"
#include "macro.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path.h"
#include "path-util.h"
#include "serialize.h"
#include "ip-protocol-list.h"
#include "label.h"
#include "log.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "process-util.h"
#include "log.h"
#include "macro.h"
#include "missing_audit.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path-util.h"
#include "process-util.h"
#include "rm-rf.h"
#include "macro.h"
#include "main-func.h"
#include "memory-util.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "process-util.h"
#include "signal-util.h"
#include "alloc-util.h"
#include "dropin.h"
#include "generator.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "proc-cmdline.h"
if (!f)
return log_oom();
- mkdir_parents_label(p, 0755);
+ (void) mkdir_parents_label(p, 0755);
if (symlink(f, p) < 0)
r = log_error_errno(errno,
#include "fileio.h"
#include "generator.h"
#include "log.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path-util.h"
#include "process-util.h"
#include "strv.h"
from = strjoina(SYSTEM_DATA_UNIT_DIR "/", fservice);
to = strjoina(arg_dest, "/getty.target.wants/", tservice);
- mkdir_parents_label(to, 0755);
+ (void) mkdir_parents_label(to, 0755);
r = symlink(from, to);
if (r < 0) {
#include "generator.h"
#include "log.h"
#include "main-func.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "proc-cmdline.h"
#include "special.h"
#include "string-util.h"
if (!lnk)
return log_oom();
- mkdir_parents_label(lnk, 0755);
+ (void) mkdir_parents_label(lnk, 0755);
if (symlink(SYSTEM_DATA_UNIT_DIR "/systemd-hibernate-resume@.service", lnk) < 0)
return log_error_errno(errno, "Failed to create symlink %s: %m", lnk);
#include "import-util.h"
#include "install-file.h"
#include "main-func.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-argument.h"
#include "ratelimit.h"
#include "rm-rf.h"
#include "install-file.h"
#include "io-util.h"
#include "machine-pool.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path-util.h"
#include "qcow2-util.h"
#include "ratelimit.h"
#include "install-file.h"
#include "io-util.h"
#include "machine-pool.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path-util.h"
#include "process-util.h"
#include "qcow2-util.h"
#include "machine-pool.h"
#include "main-func.h"
#include "missing_capability.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "percent-util.h"
#include "import-util.h"
#include "install-file.h"
#include "macro.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path-util.h"
#include "pull-common.h"
#include "pull-job.h"
#include "import-util.h"
#include "install-file.h"
#include "macro.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path-util.h"
#include "process-util.h"
#include "pull-common.h"
#include "keymap-util.h"
#include "locale-util.h"
#include "macro.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "nulstr-util.h"
#include "process-util.h"
#include "string-util.h"
#include "logind-user-dbus.h"
#include "logind.h"
#include "missing_capability.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "process-util.h"
#include "io-util.h"
#include "logind-dbus.h"
#include "logind-inhibit.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "string-table.h"
#include "logind-seat-dbus.h"
#include "logind-seat.h"
#include "logind-session-dbus.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "stdio-util.h"
#include "logind-session-dbus.h"
#include "logind-session.h"
#include "logind-user-dbus.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "process-util.h"
#include "logind-dbus.h"
#include "logind-user-dbus.h"
#include "logind-user.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "percent-util.h"
#include "logind-user-dbus.h"
#include "logind.h"
#include "main-func.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "process-util.h"
#include "selinux-util.h"
#include "label.h"
#include "limits-util.h"
#include "main-func.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "path-util.h"
#include "hashmap.h"
#include "machine-dbus.h"
#include "machine.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "process-util.h"
#include "fd-util.h"
#include "format-util.h"
#include "hostname-util.h"
-#include "label.h"
#include "machined-varlink.h"
#include "machined.h"
#include "main-func.h"
+#include "mkdir-label.h"
#include "process-util.h"
#include "service-util.h"
#include "signal-util.h"
#include "daemon-util.h"
#include "firewall-util.h"
#include "main-func.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "networkd-conf.h"
#include "networkd-manager.h"
#include "signal-util.h"
#include "format-util.h"
#include "fs-util.h"
#include "label.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "nspawn-mount.h"
#include "generator.h"
#include "log.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "string-util.h"
#include "util.h"
#include "capability-util.h"
#include "daemon-util.h"
#include "main-func.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "resolved-bus.h"
#include "resolved-conf.h"
#include "resolved-manager.h"
#include "macro.h"
#include "memory-util.h"
#include "missing_syscall.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "process-util.h"
#include "random-util.h"
#include "signal-util.h"
#include "io-util.h"
#include "macro.h"
#include "missing_syscall.h"
+#include "mkdir-label.h"
#include "mountpoint-util.h"
#include "nulstr-util.h"
#include "rm-rf.h"
#include "dev-setup.h"
#include "label.h"
#include "log.h"
+#include "mkdir-label.h"
#include "nulstr-util.h"
#include "path-util.h"
#include "umask-util.h"
#include "hostname-setup.h"
#include "id128-util.h"
#include "import-util.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "namespace-util.h"
#include "generator.h"
#include "log.h"
#include "macro.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path-util.h"
#include "special.h"
#include "specifier.h"
from = path_is_absolute(src) ? src : strjoina("../", src);
to = strjoina(dir, "/", dst, ".", dep_type, "/", basename(src));
- mkdir_parents_label(to, 0755);
+ (void) mkdir_parents_label(to, 0755);
if (symlink(from, to) < 0)
if (errno != EEXIST)
return log_error_errno(errno, "Failed to create symlink \"%s\": %m", to);
#include "hwdb-internal.h"
#include "hwdb-util.h"
#include "label.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "nulstr-util.h"
#include "path-util.h"
#include "sort-util.h"
#include "locale-util.h"
#include "log.h"
#include "macro.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path-lookup.h"
#include "path-util.h"
#include "rm-rf.h"
* the right place, or negative on error.
*/
- mkdir_parents_label(new_path, 0755);
+ (void) mkdir_parents_label(new_path, 0755);
if (symlink(old_path, new_path) >= 0) {
unit_file_changes_add(changes, n_changes, UNIT_FILE_SYMLINK, new_path, old_path);
return label_fix_container(path, path, flags);
}
-int mkdirat_label(int dirfd, const char *path, mode_t mode);
-
-static inline int mkdir_label(const char *path, mode_t mode) {
- return mkdirat_label(AT_FDCWD, path, mode);
-}
-
int symlink_label(const char *old_path, const char *new_path);
int symlink_atomic_label(const char *from, const char *to);
int mknod_label(const char *pathname, mode_t mode, dev_t dev);
macvlan-util.h
main-func.h
mkdir-label.c
+ mkdir-label.h
mkfs-util.c
mkfs-util.h
module-util.h
/* SPDX-License-Identifier: LGPL-2.1-or-later */
-#include <stdio.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-#include "label.h"
-#include "macro.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "selinux-util.h"
#include "smack-util.h"
#include "user-util.h"
--- /dev/null
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#pragma once
+
+#include <fcntl.h>
+#include <sys/types.h>
+
+#include "mkdir.h"
+
+int mkdirat_label(int dirfd, const char *path, mode_t mode);
+
+static inline int mkdir_label(const char *path, mode_t mode) {
+ return mkdirat_label(AT_FDCWD, path, mode);
+}
+
+int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid, MkdirFlags flags);
+int mkdir_parents_label(const char *path, mode_t mod);
+int mkdir_p_label(const char *path, mode_t mode);
#include "label.h"
#include "log.h"
#include "macro.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-setup.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "libmount-util.h"
#include "missing_mount.h"
#include "missing_syscall.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "namespace-util.h"
#include "log.h"
#include "macro.h"
#include "missing_socket.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "selinux-util.h"
#include "socket-util.h"
#include "umask-util.h"
#include "fd-util.h"
#include "log.h"
#include "missing_syscall.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "path-util.h"
#include "fd-util.h"
#include "fileio.h"
#include "fs-util.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "pager.h"
#include "path-util.h"
#include "pretty-print.h"
#include "fs-util.h"
#include "log.h"
#include "main-func.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "namespace-util.h"
#include "selinux-util.h"
#include "fd-util.h"
#include "fs-util.h"
#include "main-func.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "network-util.h"
#include "process-util.h"
#include "signal-util.h"
#include "main-func.h"
#include "missing_stat.h"
#include "missing_syscall.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "mount-util.h"
#include "mountpoint-util.h"
#include "offline-passwd.h"
#include "macro.h"
#include "main-func.h"
#include "memory-util.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "path-util.h"
#include "pretty-print.h"
#include "process-util.h"
#include "format-util.h"
#include "fs-util.h"
#include "hexdecoct.h"
-#include "mkdir.h"
+#include "mkdir-label.h"
#include "parse-util.h"
#include "path-util.h"
#include "random-util.h"