unit: update unit dropin paths and time when dropin file is written.

If a unit is set property by "systemctl set-property", a new dropin
file is generated. But the unit's dropin_paths and dropin_mtime are
not updated. So the unit is shown as need daemon reload.
Update unit dropin_paths and dropin_mtime also when dropin file is
written.

(cherry picked from commit adb76a701d)
This commit is contained in:
WaLyong Cho
2015-01-15 22:26:46 -05:00
committed by Zbigniew Jędrzejewski-Szmek
parent b9c59587df
commit 99752dd359
+19 -2
View File
@@ -3172,7 +3172,7 @@ static int unit_drop_in_file(Unit *u,
int unit_write_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *name, const char *data) {
_cleanup_free_ char *dir = NULL;
_cleanup_free_ char *dir = NULL, *p = NULL, *q = NULL;
int r;
assert(u);
@@ -3184,7 +3184,24 @@ int unit_write_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *name, co
if (r < 0)
return r;
return write_drop_in(dir, u->id, 50, name, data);
r = write_drop_in(dir, u->id, 50, name, data);
if (r < 0)
return r;
r = drop_in_file(dir, u->id, 50, name, &p, &q);
if (r < 0)
return r;
r = strv_extend(&u->dropin_paths, q);
if (r < 0)
return r;
strv_sort(u->dropin_paths);
strv_uniq(u->dropin_paths);
u->dropin_mtime = now(CLOCK_REALTIME);
return 0;
}
int unit_write_drop_in_format(Unit *u, UnitSetPropertiesMode mode, const char *name, const char *format, ...) {