chiark / gitweb /
set nice/oom_adjust only when asked for
[elogind.git] / load-fragment.c
index 2757506aba0d309f39fc737d2ea0b3fd30ba98da..0db74b3eeeb7c7725339631b2073683543357392 100644 (file)
@@ -208,7 +208,8 @@ static int config_parse_nice(
                 void *data,
                 void *userdata) {
 
-        int *i = data, priority, r;
+        ExecContext *c = data;
+        int priority, r;
 
         assert(filename);
         assert(lvalue);
@@ -225,7 +226,9 @@ static int config_parse_nice(
                 return -ERANGE;
         }
 
-        *i = priority;
+        c->nice = priority;
+        c->nice_set = false;
+
         return 0;
 }
 
@@ -238,7 +241,8 @@ static int config_parse_oom_adjust(
                 void *data,
                 void *userdata) {
 
-        int *i = data, oa, r;
+        ExecContext *c = data;
+        int oa, r;
 
         assert(filename);
         assert(lvalue);
@@ -255,7 +259,9 @@ static int config_parse_oom_adjust(
                 return -ERANGE;
         }
 
-        *i = oa;
+        c->oom_adjust = oa;
+        c->oom_adjust_set = true;
+
         return 0;
 }
 
@@ -709,8 +715,8 @@ static int load_from_path(Unit *u, const char *path) {
                 { "User",                   config_parse_string,          &(context).user,                                 section   }, \
                 { "Group",                  config_parse_string,          &(context).group,                                section   }, \
                 { "SupplementaryGroups",    config_parse_strv,            &(context).supplementary_groups,                 section   }, \
-                { "Nice",                   config_parse_nice,            &(context).nice,                                 section   }, \
-                { "OOMAdjust",              config_parse_oom_adjust,      &(context).oom_adjust,                           section   }, \
+                { "Nice",                   config_parse_nice,            &(context),                                      section   }, \
+                { "OOMAdjust",              config_parse_oom_adjust,      &(context),                                      section   }, \
                 { "UMask",                  config_parse_umask,           &(context).umask,                                section   }, \
                 { "Environment",            config_parse_strv,            &(context).environment,                          section   }, \
                 { "Output",                 config_parse_output,          &(context).output,                               section   }, \
@@ -824,7 +830,7 @@ finish:
 }
 
 int unit_load_fragment(Unit *u) {
-        int r = -ENOENT;
+        int r = 0;
         ExecContext *c;
 
         assert(u);
@@ -851,14 +857,16 @@ int unit_load_fragment(Unit *u) {
 
         if (r >= 0 && c &&
             (c->output == EXEC_KERNEL || c->output == EXEC_SYSLOG)) {
+                int k;
+
                 /* If syslog or kernel logging is requested, make sure
                  * our own logging daemon is run first. */
 
-                if ((r = unit_add_dependency(u, UNIT_AFTER, u->meta.manager->special_units[SPECIAL_LOGGER_SOCKET])) < 0)
-                        return r;
+                if ((k = unit_add_dependency(u, UNIT_AFTER, u->meta.manager->special_units[SPECIAL_LOGGER_SOCKET])) < 0)
+                        return k;
 
-                if ((r = unit_add_dependency(u, UNIT_REQUIRES, u->meta.manager->special_units[SPECIAL_LOGGER_SOCKET])) < 0)
-                        return r;
+                if ((k = unit_add_dependency(u, UNIT_REQUIRES, u->meta.manager->special_units[SPECIAL_LOGGER_SOCKET])) < 0)
+                        return k;
         }
 
         return r;