[systemd-commits] src/shared

Dave Reisner dreisner at kemper.freedesktop.org
Fri Oct 31 05:20:44 PDT 2014


 src/shared/install.c |    8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

New commits:
commit 0ffce503cd6e5a5ff5ba5cd1cc23684cfb8bb9e3
Author: Dave Reisner <dreisner at archlinux.org>
Date:   Thu Oct 30 20:12:05 2014 -0400

    shared/install: avoid prematurely rejecting "missing" units
    
    f7101b7368df copied some logic to prevent enabling masked units, but
    also added a check which causes attempts to enable templated units to
    fail. Since we know the logic beyond this check will properly handle
    units which truly do not exist, we can rely on the unit file state
    comparison to suffice for expressing the intent of f7101b7368df.
    
    ref: https://bugs.archlinux.org/task/42616

diff --git a/src/shared/install.c b/src/shared/install.c
index 035b44c..cab93e8 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -1620,12 +1620,10 @@ int unit_file_enable(
         STRV_FOREACH(i, files) {
                 UnitFileState state;
 
+                /* We only want to know if this unit is masked, so we ignore
+                 * errors from unit_file_get_state, deferring other checks.
+                 * This allows templated units to be enabled on the fly. */
                 state = unit_file_get_state(scope, root_dir, *i);
-                if (state < 0) {
-                        log_error("Failed to get unit file state for %s: %s", *i, strerror(-state));
-                        return state;
-                }
-
                 if (state == UNIT_FILE_MASKED || state == UNIT_FILE_MASKED_RUNTIME) {
                         log_error("Failed to enable unit: Unit %s is masked", *i);
                         return -ENOTSUP;



More information about the systemd-commits mailing list