From: Lennart Poettering Date: Wed, 19 May 2010 01:42:05 +0000 (+0200) Subject: automount: never consider our own mount point a prefix mount of us X-Git-Tag: v1~322 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=1b5601907efffd364b660bb75156b2aed49c46a4;hp=c8513d54d23a36fc84b2f0b96989da3041ad15bc automount: never consider our own mount point a prefix mount of us --- diff --git a/fixme b/fixme index 969c6cd30..0894c4701 100644 --- a/fixme +++ b/fixme @@ -65,7 +65,8 @@ * teach dbus to talk to systemd when autospawning services -* unix sockets chown()/chgrp() +* Figure out which signal handlers we actually have to reset in the + forked off child Regularly: diff --git a/src/automount.c b/src/automount.c index 465354f55..32680461c 100644 --- a/src/automount.c +++ b/src/automount.c @@ -59,6 +59,8 @@ static void repeat_unmout(const char *path) { assert(path); for (;;) { + /* If there are multiple mounts on a mount point, this + * removes them all */ 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_equal(a->where, m->where)) + return 0; + if ((r = unit_add_dependency(UNIT(m), UNIT_BEFORE, UNIT(a), true)) < 0) return r;