X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fautomount.c;h=b1619a64e6d799bd8c712ca0633639935a35acab;hb=774de5a97fe69da822fde77b88af8d970ab5d0c6;hp=64b6cff72ed39bc69cbb2e8af5e76a78108b8223;hpb=d2e54fae5ca7a0f71b5ac8b356a589ff0a09ea0a;p=elogind.git diff --git a/src/core/automount.c b/src/core/automount.c index 64b6cff72..b1619a64e 100644 --- a/src/core/automount.c +++ b/src/core/automount.c @@ -156,7 +156,7 @@ static int automount_add_default_dependencies(Automount *a) { assert(a); - if (UNIT(a)->manager->running_as != MANAGER_SYSTEM) + if (UNIT(a)->manager->running_as != SYSTEMD_SYSTEM) return 0; r = unit_add_two_dependencies_by_name(UNIT(a), UNIT_BEFORE, UNIT_CONFLICTS, SPECIAL_UMOUNT_TARGET, NULL, true); @@ -314,7 +314,7 @@ static int open_dev_autofs(Manager *m) { if (m->dev_autofs_fd >= 0) return m->dev_autofs_fd; - label_fix("/dev/autofs", false); + label_fix("/dev/autofs", false, false); if ((m->dev_autofs_fd = open("/dev/autofs", O_CLOEXEC|O_RDONLY)) < 0) { log_error("Failed to open /dev/autofs: %s", strerror(errno)); @@ -501,6 +501,9 @@ static void automount_enter_waiting(Automount *a) { /* We knowingly ignore the results of this call */ mkdir_p_label(a->where, 0555); + if (dir_is_empty(a->where) <= 0) + log_notice("%s: Directory %s to mount over is not empty, mounting anyway. (To see the over-mounted files, please manually mount the underlying file system to a secondary location.)", a->meta.id, a->where); + if (pipe2(p, O_NONBLOCK|O_CLOEXEC) < 0) { r = -errno; goto fail; @@ -780,11 +783,12 @@ static void automount_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { char *p = NULL; get_process_comm(packet.v5_packet.pid, &p); - log_debug("Got direct mount request for %s, triggered by %lu (%s)", packet.v5_packet.name, (unsigned long) packet.v5_packet.pid, strna(p)); + log_debug("Got direct mount request on %s, triggered by %lu (%s)", + a->where, (unsigned long) packet.v5_packet.pid, strna(p)); free(p); } else - log_debug("Got direct mount request for %s", packet.v5_packet.name); + log_debug("Got direct mount request on %s", a->where); if (!a->tokens) if (!(a->tokens = set_new(trivial_hash_func, trivial_compare_func))) { @@ -846,7 +850,6 @@ static const char* const automount_result_table[_AUTOMOUNT_RESULT_MAX] = { DEFINE_STRING_TABLE_LOOKUP(automount_result, AutomountResult); const UnitVTable automount_vtable = { - .suffix = ".automount", .object_size = sizeof(Automount), .sections = "Unit\0"