X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fload-dropin.c;fp=src%2Fload-dropin.c;h=9ba1201dbc9a6d3a4d750ed43e009dceaf9e2f75;hp=bdf3dd2c2e36f3f1e7a844a7e904425650ba296a;hb=fe51822e7120e89566cf76278d0b78ec7db4b43a;hpb=9014a8bd7a88aa4794b730e7fccf7838a00ad351 diff --git a/src/load-dropin.c b/src/load-dropin.c index bdf3dd2c2..9ba1201db 100644 --- a/src/load-dropin.c +++ b/src/load-dropin.c @@ -84,7 +84,11 @@ int unit_load_dropin(Unit *u) { 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)