diff -uNr systemd-228/src/basic/fs-util.c systemd-228-new/src/basic/fs-util.c
--- systemd-228/src/basic/fs-util.c	2017-02-07 23:47:47.432666702 +0000
+++ systemd-228-new/src/basic/fs-util.c	2017-02-08 00:03:43.500712291 +0000
@@ -327,7 +327,8 @@
         if (parents)
                 mkdir_parents(path, 0755);
 
-        fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC|O_NOCTTY, mode > 0 ? mode : 0644);
+        fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC|O_NOCTTY,
+                        (mode == 0 || mode == MODE_INVALID) ? 0644 : mode);
         if (fd < 0)
                 return -errno;