continue;
if (errno != EINVAL)
- log_error("Failed to unmount: %m");
+ log_error_errno(errno, "Failed to unmount: %m");
break;
}
label_fix("/dev/autofs", false, false);
m->dev_autofs_fd = open("/dev/autofs", O_CLOEXEC|O_RDONLY);
- if (m->dev_autofs_fd < 0) {
- log_error("Failed to open /dev/autofs: %m");
- return -errno;
- }
+ if (m->dev_autofs_fd < 0)
+ return log_error_errno(errno, "Failed to open /dev/autofs: %m");
init_autofs_dev_ioctl(¶m);
if (ioctl(m->dev_autofs_fd, AUTOFS_DEV_IOCTL_VERSION, ¶m) < 0) {
get_process_comm(packet.v5_packet.pid, &p);
log_unit_info(UNIT(a)->id,
- "Got automount request for %s, triggered by "PID_FMT" (%s)",
+ "Got automount request for %s, triggered by %"PRIu32" (%s)",
a->where, packet.v5_packet.pid, strna(p));
} else
log_unit_debug(UNIT(a)->id, "Got direct mount request on %s", a->where);
a->result = AUTOMOUNT_SUCCESS;
}
+static bool automount_supported(Manager *m) {
+ static int supported = -1;
+
+ assert(m);
+
+ if (supported < 0)
+ supported = access("/dev/autofs", F_OK) >= 0;
+
+ return supported;
+}
+
static const char* const automount_state_table[_AUTOMOUNT_STATE_MAX] = {
[AUTOMOUNT_DEAD] = "dead",
[AUTOMOUNT_WAITING] = "waiting",
.bus_vtable = bus_automount_vtable,
.shutdown = automount_shutdown,
+ .supported = automount_supported,
.status_message_formats = {
.finished_start_job = {