chiark / gitweb /
units: properly terminate readahead collection 10s after boot
[elogind.git] / src / load-fragment.c
index 74114c43b865a9c82e294c52fc015aaacbfd8720..4395fb280c45154a839559474c9c17ed2ba931a0 100644 (file)
@@ -1846,10 +1846,20 @@ int unit_load_fragment(Unit *u) {
                 }
 
         /* And now, try looking for it under the suggested (originally linked) path */
-        if (u->meta.load_state == UNIT_STUB && u->meta.fragment_path)
+        if (u->meta.load_state == UNIT_STUB && u->meta.fragment_path) {
+
                 if ((r = load_from_path(u, u->meta.fragment_path)) < 0)
                         return r;
 
+                if (u->meta.load_state == UNIT_STUB) {
+                        /* Hmm, this didn't work? Then let's get rid
+                         * of the fragment path stored for us, so that
+                         * we don't point to an invalid location. */
+                        free(u->meta.fragment_path);
+                        u->meta.fragment_path = NULL;
+                }
+        }
+
         /* Look for a template */
         if (u->meta.load_state == UNIT_STUB && u->meta.instance) {
                 char *k;