From: Malte Starostik Date: Tue, 5 Jun 2012 19:10:28 +0000 (+0200) Subject: mount: fix for complex automounts X-Git-Tag: v187~139 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=36fcd77e02cedf300e2f45f2449e7e091ef5a7ab;hp=a9f55579e8cae256b91dfec9f775622698b1a605 mount: fix for complex automounts 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. --- diff --git a/src/core/mount.c b/src/core/mount.c index 69cb6e24e..fab922ea9 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -687,8 +687,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",