1
0
mirror of https://github.com/systemd/systemd.git synced 2025-06-02 17:07:47 +03:00

Merge pull request #34791 from poettering/live-mount-tweak

tweaks to live mount property logging
This commit is contained in:
Luca Boccassi 2024-10-16 14:43:14 +01:00 committed by GitHub
commit 6eb8d2bc3a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 20 deletions

View File

@ -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)

View File

@ -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;
}

View File

@ -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;