#include "path-util.h"
#include "mkdir.h"
+static int label_mkdir(const char *path, mode_t mode) {
+ int r;
+
+ if (mac_selinux_use()) {
+ r = mac_selinux_mkdir(path, mode);
+ if (r < 0)
+ return r;
+ }
+
+ if (mac_smack_use()) {
+ r = mkdir(path, mode);
+ if (r < 0 && errno != EEXIST)
+ return -errno;
+
+ r = mac_smack_fix(path);
+ if (r < 0)
+ return r;
+ }
+
+ r = mkdir(path, mode);
+ if (r < 0 && errno != EEXIST)
+ return -errno;
+
+ return 0;
+}
+
int mkdir_label(const char *path, mode_t mode) {
return label_mkdir(path, mode);
}
return mkdir_parents_internal(NULL, path, mode, label_mkdir);
}
-int mkdir_parents_prefix_label(const char *prefix, const char *path, mode_t mode) {
- return mkdir_parents_internal(prefix, path, mode, label_mkdir);
-}
-
int mkdir_p_label(const char *path, mode_t mode) {
return mkdir_p_internal(NULL, path, mode, label_mkdir);
}