[systemd-commits] 2 commits - src/core src/shared

Lennart Poettering lennart at kemper.freedesktop.org
Thu May 22 00:50:06 PDT 2014


 src/core/load-dropin.c   |   42 +++++++++++++-----------------------------
 src/shared/conf-parser.c |    4 ++--
 2 files changed, 15 insertions(+), 31 deletions(-)

New commits:
commit bcd816bd349241bcd9c0bfbfd9cfe7b034ba351b
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu May 22 16:49:12 2014 +0900

    core: never consider failure when reading drop-ins fatal
    
    drop-ins don't carry the main configuration of a unit, hence read them
    if we can't, complain if we cannot, but don't fail.

diff --git a/src/core/load-dropin.c b/src/core/load-dropin.c
index 546e560..f2ffc97 100644
--- a/src/core/load-dropin.c
+++ b/src/core/load-dropin.c
@@ -58,6 +58,7 @@ static int iterate_dir(
                 if (errno == ENOENT)
                         return 0;
 
+                log_error("Failed to open directory %s: %m", path);
                 return -errno;
         }
 
@@ -101,7 +102,7 @@ static int process_dir(
                 char ***strv) {
 
         _cleanup_free_ char *path = NULL;
-        int r;
+        int r, q;
 
         assert(u);
         assert(unit_path);
@@ -112,11 +113,8 @@ static int process_dir(
         if (!path)
                 return log_oom();
 
-        if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path)) {
-                r = iterate_dir(u, path, dependency, strv);
-                if (r < 0)
-                        return r;
-        }
+        if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, path))
+                iterate_dir(u, path, dependency, strv);
 
         if (u->instance) {
                 _cleanup_free_ char *template = NULL, *p = NULL;
@@ -130,11 +128,8 @@ static int process_dir(
                 if (!p)
                         return log_oom();
 
-                if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p)) {
-                        r = iterate_dir(u, p, dependency, strv);
-                        if (r < 0)
-                                return r;
-                }
+                if (!u->manager->unit_path_cache || set_get(u->manager->unit_path_cache, p))
+                        iterate_dir(u, p, dependency, strv);
         }
 
         return 0;
@@ -152,12 +147,8 @@ char **unit_find_dropin_paths(Unit *u) {
         SET_FOREACH(t, u->names, i) {
                 char **p;
 
-                STRV_FOREACH(p, u->manager->lookup_paths.unit_path) {
-                        /* This loads the drop-in config snippets */
-                        r = process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv);
-                        if (r < 0)
-                                return NULL;
-                }
+                STRV_FOREACH(p, u->manager->lookup_paths.unit_path)
+                        process_dir(u, *p, t, ".d", _UNIT_DEPENDENCY_INVALID, &strv);
         }
 
         if (strv_isempty(strv))
@@ -186,13 +177,8 @@ int unit_load_dropin(Unit *u) {
                 char **p;
 
                 STRV_FOREACH(p, u->manager->lookup_paths.unit_path) {
-                        r = process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL);
-                        if (r < 0)
-                                return r;
-
-                        r = process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL);
-                        if (r < 0)
-                                return r;
+                        process_dir(u, *p, t, ".wants", UNIT_WANTS, NULL);
+                        process_dir(u, *p, t, ".requires", UNIT_REQUIRES, NULL);
                 }
         }
 
@@ -201,11 +187,9 @@ int unit_load_dropin(Unit *u) {
                 return 0;
 
         STRV_FOREACH(f, u->dropin_paths) {
-                r = config_parse(u->id, *f, NULL,
-                                 UNIT_VTABLE(u)->sections, config_item_perf_lookup,
-                                 (void*) load_fragment_gperf_lookup, false, false, u);
-                if (r < 0)
-                        return r;
+                config_parse(u->id, *f, NULL,
+                             UNIT_VTABLE(u)->sections, config_item_perf_lookup,
+                             (void*) load_fragment_gperf_lookup, false, false, u);
         }
 
         u->dropin_mtime = now(CLOCK_REALTIME);

commit 9f43a07f10639c5b41b45448e551e43914eefe32
Author: Lennart Poettering <lennart at poettering.net>
Date:   Thu May 22 16:47:46 2014 +0900

    conf-parser: never consider it an error if we cannot load a drop-in file because it is missing
    
    After all, we want to be able to boot with /etc empty one day...

diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c
index 062b15b..77a172e 100644
--- a/src/shared/conf-parser.c
+++ b/src/shared/conf-parser.c
@@ -340,8 +340,8 @@ int config_parse(const char *unit,
         if (!f) {
                 f = ours = fopen(filename, "re");
                 if (!f) {
-                        log_error("Failed to open configuration file '%s': %m", filename);
-                        return -errno;
+                        log_full(errno == ENOENT ? LOG_DEBUG : LOG_ERR, "Failed to open configuration file '%s': %m", filename);
+                        return errno == ENOENT ? 0 : -errno;
                 }
         }
 



More information about the systemd-commits mailing list