X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fload-dropin.c;h=eef3e6aff2d3992dec70d9ee53d561221da3734b;hp=2101e330046711706971155ec6d580ac18ababec;hb=b568b917b002425e28ff8009f4c1d4f35a8b03e3;hpb=e99e38bbdcca3fe5956823bdb3d38544ccf93221 diff --git a/src/load-dropin.c b/src/load-dropin.c index 2101e3300..eef3e6aff 100644 --- a/src/load-dropin.c +++ b/src/load-dropin.c @@ -1,4 +1,4 @@ -/*-*- Mode: C; c-basic-offset: 8 -*-*/ +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ /*** This file is part of systemd. @@ -79,12 +79,16 @@ int unit_load_dropin(Unit *u) { char *path; char **p; - STRV_FOREACH(p, u->meta.manager->unit_path) { + STRV_FOREACH(p, u->meta.manager->lookup_paths.unit_path) { if (asprintf(&path, "%s/%s.wants", *p, t) < 0) return -ENOMEM; - r = iterate_dir(u, path); + if (u->meta.manager->unit_path_cache && + !set_get(u->meta.manager->unit_path_cache, path)) + r = 0; + else + r = iterate_dir(u, path); free(path); if (r < 0) @@ -103,7 +107,11 @@ int unit_load_dropin(Unit *u) { if (r < 0) return -ENOMEM; - r = iterate_dir(u, path); + if (u->meta.manager->unit_path_cache && + !set_get(u->meta.manager->unit_path_cache, path)) + r = 0; + else + r = iterate_dir(u, path); free(path); if (r < 0)