chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sd-daemon: fix compilation on old systems lacking SOCK_CLOEXEC
[elogind.git]
/
src
/
load-dropin.c
diff --git
a/src/load-dropin.c
b/src/load-dropin.c
index bdf3dd2c2e36f3f1e7a844a7e904425650ba296a..9ba1201dbc9a6d3a4d750ed43e009dceaf9e2f75 100644
(file)
--- 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;
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)
free(path);
if (r < 0)
@@
-103,7
+107,11
@@
int unit_load_dropin(Unit *u) {
if (r < 0)
return -ENOMEM;
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)
free(path);
if (r < 0)