m->directory_mode = 0755;
exec_context_init(&m->exec_context);
- m->exec_context.std_output = EXEC_OUTPUT_KMSG;
+
+ /* The stdio/kmsg bridge socket is on /, in order to avoid a
+ * dep loop, don't use kmsg logging for -.mount */
+ if (!unit_has_name(u, "-.mount"))
+ m->exec_context.std_output = EXEC_OUTPUT_KMSG;
/* We need to make sure that /bin/mount is always called in
* the same process group as us, so that the autofs kernel
m->timer_watch.type = WATCH_INVALID;
m->control_command_id = _MOUNT_EXEC_COMMAND_INVALID;
+
+ m->meta.ignore_on_isolate = true;
}
static void mount_unwatch_control_pid(Mount *m) {
return -EINVAL;
}
+ if (mount_point_is_api(m->where) || mount_point_ignore(m->where)) {
+ log_error("Cannot create mount unit for API file system %s. Refusing.", m->where);
+ return -EINVAL;
+ }
+
if (m->meta.fragment_path && !m->parameters_fragment.what) {
log_error("%s's What setting is missing. Refusing.", m->meta.id);
return -EBADMSG;
wait_for_exit = true;
set_free(pid_set);
+ pid_set = NULL;
}
}
/* Ignore API mount points. They should never be referenced in
* dependencies ever. */
- if (mount_point_is_api(where))
- return 0;
- if (mount_point_ignore(where))
+ if (mount_point_is_api(where) || mount_point_ignore(where))
return 0;
if (streq(fstype, "autofs"))
.no_alias = true,
.no_instances = true,
- .no_isolate = true,
.show_status = true,
.init = mount_init,