chiark / gitweb /
lookup: always also look into /usr/lib for units
[elogind.git] / src / tmpfiles.c
index 0c3b88d35b19a1aaf56247802e95b88665911c7c..b21df95a7350292ba5d6b3614eb65778bc9b3f1e 100644 (file)
@@ -47,9 +47,8 @@
 
 /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
  * them in the file system. This is intended to be used to create
- * properly owned directories beneath /tmp, /var/tmp, /var/run and
- * /var/lock which are volatile and hence need to be recreated on
- * bootup. */
+ * properly owned directories beneath /tmp, /var/tmp, /run, which are
+ * volatile and hence need to be recreated on bootup. */
 
 enum {
         /* These ones take file names */
@@ -466,6 +465,7 @@ static int create_item(Item *i) {
         case CREATE_DIRECTORY:
 
                 u = umask(0);
+                mkdir_parents(i->path, 0755);
                 r = mkdir(i->path, i->mode);
                 umask(u);
 
@@ -775,7 +775,8 @@ static int scandir_filter(const struct dirent *d) {
                 return 0;
 
         if (d->d_type != DT_REG &&
-            d->d_type != DT_LNK)
+            d->d_type != DT_LNK &&
+            d->d_type != DT_UNKNOWN)
                 return 0;
 
         return endswith(d->d_name, ".conf");