core/unit: re-find dropin paths of a unit after writting settings

Fixes: ab932a622d ("core: simplify unit_need_daemon_reload() a bit")
Fixes #35710

Co-authored-by: Jian Wen <wenjianhn@gmail.com>
This commit is contained in:
Heran Yang
2026-01-18 14:14:24 +09:00
committed by Yu Watanabe
co-authored by Jian Wen
parent 7b6b7d484d
commit c55aadc13e
2 changed files with 14 additions and 4 deletions
+3 -4
View File
@@ -4748,12 +4748,11 @@ int unit_write_setting(Unit *u, UnitWriteFlags flags, const char *name, const ch
if (r < 0)
return r;
r = strv_push(&u->dropin_paths, q);
_cleanup_strv_free_ char **dropins = NULL;
r = unit_find_dropin_paths(u, /* use_unit_path_cache= */ true, &dropins);
if (r < 0)
return r;
q = NULL;
strv_uniq(u->dropin_paths);
strv_free_and_replace(u->dropin_paths, dropins);
u->dropin_mtime = now(CLOCK_REALTIME);
+11
View File
@@ -712,6 +712,17 @@ EOF
clear_units test15-a.service
}
testcase_order_dropin_paths_set_property() {
# For issue #35710.
echo "Testing the order of dropin paths that are created by set-property"
create_service test15-a
systemctl set-property test15-a DevicePolicy=strict DeviceAllow="char-* m"
check_ok test15-a NeedDaemonReload no
clear_units test15-a.service
}
run_testcases
touch /testok