+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;
+}
+