From: Yu Watanabe Date: Sat, 14 May 2022 20:49:01 +0000 (+0900) Subject: core/mount: also remove default deps from /proc/self/mountinfo when it is updated X-Git-Tag: v252-rc1~512^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0fe06168b319064a84fca05109ac3eaaeea499c2;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/core/mount.c b/src/core/mount.c index 229b3de4fd2..71da69cbb5f 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -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)