chiark / gitweb /
label: don't try to create labelled directories more than once
[elogind.git] / src / shared / mkdir-label.c
index 81bc78c1e77d4c4fe06debecf0aa6a1a1c558d2a..8b353867068d6a2b8f9d23fcecad413a8a961ac5 100644 (file)
 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_selinux_use())
+                return mac_selinux_mkdir(path, mode);
 
         if (mac_smack_use()) {
                 r = mkdir(path, mode);
-                if (r < 0 && errno != EEXIST)
+                if (r < 0)
                         return -errno;
 
-                r = mac_smack_fix(path, false, false);
-                if (r < 0)
-                        return r;
+                return mac_smack_fix(path, false, false);
         }
 
         r = mkdir(path, mode);
-        if (r < 0 && errno != EEXIST)
+        if (r < 0)
                 return -errno;
 
         return 0;