core/mount: also remove default deps from /proc/self/mountinfo when it is updated

The dependencies tagged with UNIT_DEPENDENCY_MOUNTINFO_DEFAULT depend
on both /proc/self/mountinfo and corresponding .mount unit file.
Hence, if some information from mountinfo is updated, e.g. device mounted
on the path, we need to update the dependencies.
This commit is contained in:
Yu Watanabe 2022-05-15 05:49:01 +09:00
parent b9e6d23dfc
commit 0fe06168b3

View file

@ -909,7 +909,7 @@ static void mount_enter_dead(Mount *m, MountResult f) {
dynamic_creds_destroy(&m->dynamic_creds);
/* Any dependencies based on /proc/self/mountinfo are now stale */
unit_remove_dependencies(UNIT(m), UNIT_DEPENDENCY_MOUNTINFO_IMPLICIT);
unit_remove_dependencies(UNIT(m), UNIT_DEPENDENCY_MOUNTINFO_IMPLICIT | UNIT_DEPENDENCY_MOUNTINFO_DEFAULT);
}
static void mount_enter_mounted(Mount *m, MountResult f) {
@ -1675,7 +1675,7 @@ static int mount_setup_existing_unit(
/* If things changed, then make sure that all deps are regenerated. Let's
* first remove all automatic deps, and then add in the new ones. */
unit_remove_dependencies(u, UNIT_DEPENDENCY_MOUNTINFO_IMPLICIT);
unit_remove_dependencies(u, UNIT_DEPENDENCY_MOUNTINFO_IMPLICIT | UNIT_DEPENDENCY_MOUNTINFO_DEFAULT);
r = mount_add_non_exec_dependencies(MOUNT(u));
if (r < 0)