[systemd-devel] [PATCH] Possible fix for complex automounts

Malte Starostik lists at malte.homeip.net
Tue Jun 5 12:10:28 PDT 2012


From: Malte Starostik <m-starostik at versanet.de>

If accessing an automount point triggers more changes to
/proc/self/mountinfo than just to add the directly wanted mount, these
changes can lead to spurious -ENODEV notifications on the automount unit
causing the request to fail when in fact the mount will be setup right
afterwards.
---
 src/core/mount.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/core/mount.c b/src/core/mount.c
index b885baa..7f82288 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -655,8 +655,10 @@ static void mount_set_state(Mount *m, MountState state) {
                  state == MOUNT_REMOUNTING_SIGKILL ||
                  state == MOUNT_UNMOUNTING_SIGTERM ||
                  state == MOUNT_UNMOUNTING_SIGKILL ||
-                 state == MOUNT_FAILED)
-                mount_notify_automount(m, -ENODEV);
+                 state == MOUNT_FAILED) {
+		if (state != old_state)
+			mount_notify_automount(m, -ENODEV);
+	}
 
         if (state != old_state)
                 log_debug("%s changed %s -> %s",
-- 
1.7.3.4



More information about the systemd-devel mailing list