[AUTOMOUNT_DEAD] = UNIT_INACTIVE,
[AUTOMOUNT_WAITING] = UNIT_ACTIVE,
[AUTOMOUNT_RUNNING] = UNIT_ACTIVE,
- [AUTOMOUNT_MAINTAINANCE] = UNIT_INACTIVE,
+ [AUTOMOUNT_MAINTENANCE] = UNIT_INACTIVE,
};
static int open_dev_autofs(Manager *m);
if (!success)
a->failure = true;
- automount_set_state(a, a->failure ? AUTOMOUNT_MAINTAINANCE : AUTOMOUNT_DEAD);
+ automount_set_state(a, a->failure ? AUTOMOUNT_MAINTENANCE : AUTOMOUNT_DEAD);
}
static int open_dev_autofs(Manager *m) {
return m->dev_autofs_fd;
if ((m->dev_autofs_fd = open("/dev/autofs", O_CLOEXEC|O_RDONLY)) < 0) {
-
- if (errno == ENOENT || errno == ENODEV) {
- log_error("Your kernel apparently lacks built-in autofs4 support. Please fix that. "
- "We'll now try to work around this by calling 'modprobe autofs4'...");
- system("/sbin/modprobe -q -- autofs4");
- m->dev_autofs_fd = open("/dev/autofs", O_CLOEXEC|O_RDONLY);
- }
-
- if (m->dev_autofs_fd < 0) {
- log_error("Failed to open /dev/autofs: %s", strerror(errno));
- return -errno;
- }
+ log_error("Failed to open /dev/autofs: %s", strerror(errno));
+ return -errno;
}
init_autofs_dev_ioctl(¶m);
assert(a);
+ assert(a->state == AUTOMOUNT_DEAD || a->state == AUTOMOUNT_MAINTENANCE);
+
if (path_is_mount_point(a->where)) {
log_error("Path %s is already a mount point, refusing start for %s", a->where, u->meta.id);
return -EEXIST;
}
- assert(a->state == AUTOMOUNT_DEAD || a->state == AUTOMOUNT_MAINTAINANCE);
+ if (a->mount->meta.load_state != UNIT_LOADED)
+ return -ENOENT;
a->failure = false;
automount_enter_waiting(a);
goto fail;
}
- if ((l = loop_read(a->pipe_fd, &packet, sizeof(packet))) != sizeof(packet)) {
+ if ((l = loop_read(a->pipe_fd, &packet, sizeof(packet), true)) != sizeof(packet)) {
log_error("Invalid read from pipe: %s", l < 0 ? strerror(-l) : "short read");
goto fail;
}
[AUTOMOUNT_DEAD] = "dead",
[AUTOMOUNT_WAITING] = "waiting",
[AUTOMOUNT_RUNNING] = "running",
- [AUTOMOUNT_MAINTAINANCE] = "maintainance"
+ [AUTOMOUNT_MAINTENANCE] = "maintenance"
};
DEFINE_STRING_TABLE_LOOKUP(automount_state, AutomountState);