r = unit_can_live_mount(u, error);
if (r < 0)
- return r;
+ return log_unit_debug_errno(u, r, "Cannot schedule live mount operation: %s", bus_error_message(error, r));
r = mac_selinux_unit_access_check(u, message, "start", error);
if (r < 0)
assert(u);
/* Ensure that the unit runs in a private mount namespace */
- if (!exec_needs_mount_namespace(unit_get_exec_context(u), /* params= */ NULL, unit_get_exec_runtime(u))) {
-
- /* This is also called in property_get_can_live_mount(). Suppress the debugging log when called in it. */
- if (error)
- log_unit_debug(u, "Unit not running in private mount namespace, cannot live mount");
-
+ if (!exec_needs_mount_namespace(unit_get_exec_context(u), /* params= */ NULL, unit_get_exec_runtime(u)))
return sd_bus_error_setf(
error,
SD_BUS_ERROR_INVALID_ARGS,
- "Live mounting for unit '%s' cannot be scheduled: unit not running in private mount namespace",
+ "Unit '%s' not running in private mount namespace, cannot live mount.",
u->id);
- }
return 0;
}
int unit_can_live_mount(const Unit *u, sd_bus_error *error) {
assert(u);
- if (!UNIT_VTABLE(u)->live_mount) {
- log_unit_debug(u, "Live mounting not supported for unit type '%s'", unit_type_to_string(u->type));
+ if (!UNIT_VTABLE(u)->live_mount)
return sd_bus_error_setf(
error,
SD_BUS_ERROR_INVALID_ARGS,
- "Live mounting for unit '%s' cannot be scheduled: live mounting not supported for unit type '%s'",
- u->id,
- unit_type_to_string(u->type));
- }
+ "Live mounting not supported for unit type '%s' of unit '%s'.",
+ unit_type_to_string(u->type),
+ u->id);
- if (u->load_state != UNIT_LOADED) {
- log_unit_debug(u, "Unit not loaded");
+ if (u->load_state != UNIT_LOADED)
return sd_bus_error_setf(
error,
BUS_ERROR_NO_SUCH_UNIT,
- "Live mounting for unit '%s' cannot be scheduled: unit not loaded",
+ "Unit '%s' not loaded, cannot live mount.",
u->id);
- }
if (!UNIT_VTABLE(u)->can_live_mount)
return 0;