diff --git a/src/core/dbus-service.c b/src/core/dbus-service.c index 77e9a08bdd..85eb99f218 100644 --- a/src/core/dbus-service.c +++ b/src/core/dbus-service.c @@ -168,7 +168,7 @@ static int bus_service_method_mount(sd_bus_message *message, void *userdata, sd_ 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) diff --git a/src/core/service.c b/src/core/service.c index 8f4cd63670..dfad574e65 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -968,7 +968,7 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) { "%sResult: %s\n" "%sReload Result: %s\n" "%sClean Result: %s\n" - "%sMount Result: %s\n" + "%sLiveMount Result: %s\n" "%sPermissionsStartOnly: %s\n" "%sRootDirectoryStartOnly: %s\n" "%sRemainAfterExit: %s\n" @@ -5309,18 +5309,12 @@ static int service_can_live_mount(const Unit *u, sd_bus_error *error) { 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; } diff --git a/src/core/unit.c b/src/core/unit.c index 684fe698ee..4384e3bfcb 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -6396,24 +6396,20 @@ Condition *unit_find_failed_condition(Unit *u) { 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;