[systemd-devel] [PATCH 1/3] tmpfiles: skip the path entirely if configured as type x

Lennart Poettering lennart at poettering.net
Thu Nov 7 13:39:19 PST 2013


On Wed, 06.11.13 11:18, Michal Sekletar (msekleta at redhat.com) wrote:

> 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.

Not sure I follow. dir_cleanup() already skips all items listed in the
glob hashmap anyway, no? What does your patch add on top of that?

> ---
>  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);
>  


Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list