Type x in tmpfiles configuration accepts shell style globs instead of normal
paths. If user uses normal path he might expect that the path will be left
untouched. However this is not the case for directories and content of the
directory will be cleaned according to the Age parameter, we should rather skip
the path entirely in such case.
---
 src/tmpfiles/tmpfiles.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index 8051cb3..e4ee99d 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -910,6 +910,7 @@ static int clean_item_instance(Item *i, const char* 
instance) {
         bool mountpoint;
         int r;
         usec_t cutoff, n;
+        Item *j = NULL;
 
         assert(i);
 
@@ -946,6 +947,10 @@ static int clean_item_instance(Item *i, const char* 
instance) {
                 return -errno;
         }
 
+        j = hashmap_get(globs, j->path);
+        if (j && j->type == IGNORE_PATH)
+                return 0;
+
         mountpoint = s.st_dev != ps.st_dev ||
                      (s.st_dev == ps.st_dev && s.st_ino == ps.st_ino);
 
-- 
1.8.3.1

_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to