chiark / gitweb /
automount: never consider our own mount point a prefix mount of us
[elogind.git] / src / automount.c
index 465354f5556503f82f790c8b0f69c973ca1d1a04..32680461c24612d61ebe15c71a0d6a2169050d66 100644 (file)
@@ -59,6 +59,8 @@ static void repeat_unmout(const char *path) {
         assert(path);
 
         for (;;) {
         assert(path);
 
         for (;;) {
+                /* If there are multiple mounts on a mount point, this
+                 * removes them all */
 
                 if (umount2(path, MNT_DETACH) >= 0)
                         continue;
 
                 if (umount2(path, MNT_DETACH) >= 0)
                         continue;
@@ -118,6 +120,9 @@ int automount_add_one_mount_link(Automount *a, Mount *m) {
         if (!path_startswith(a->where, m->where))
                 return 0;
 
         if (!path_startswith(a->where, m->where))
                 return 0;
 
+        if (path_equal(a->where, m->where))
+                return 0;
+
         if ((r = unit_add_dependency(UNIT(m), UNIT_BEFORE, UNIT(a), true)) < 0)
                 return r;
 
         if ((r = unit_add_dependency(UNIT(m), UNIT_BEFORE, UNIT(a), true)) < 0)
                 return r;