logind: use loop instead of repeated code

https://github.com/systemd/systemd/pull/14096#discussion_r350953689
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2020-01-17 08:13:09 +01:00
parent ddee3ada46
commit b0a94df963
+16 -28
View File
@@ -405,35 +405,23 @@ static int user_update_slice(User *u) {
if (r < 0)
return bus_log_create_error(r);
if (u->user_record->tasks_max != UINT64_MAX) {
r = sd_bus_message_append(m, "(sv)", "TasksMax", "t", u->user_record->tasks_max);
if (r < 0)
return bus_log_create_error(r);
}
const struct {
const char *name;
uint64_t value;
} settings[] = {
{ "TasksMax", u->user_record->tasks_max },
{ "MemoryMax", u->user_record->memory_max },
{ "MemoryHigh", u->user_record->memory_high },
{ "CPUWeight", u->user_record->cpu_weight },
{ "IOWeight", u->user_record->io_weight },
};
if (u->user_record->memory_max != UINT64_MAX) {
r = sd_bus_message_append(m, "(sv)", "MemoryMax", "t", u->user_record->memory_max);
if (r < 0)
return bus_log_create_error(r);
}
if (u->user_record->memory_high != UINT64_MAX) {
r = sd_bus_message_append(m, "(sv)", "MemoryHigh", "t", u->user_record->memory_high);
if (r < 0)
return bus_log_create_error(r);
}
if (u->user_record->cpu_weight != UINT64_MAX) {
r = sd_bus_message_append(m, "(sv)", "CPUWeight", "t", u->user_record->cpu_weight);
if (r < 0)
return bus_log_create_error(r);
}
if (u->user_record->io_weight != UINT64_MAX) {
r = sd_bus_message_append(m, "(sv)", "IOWeight", "t", u->user_record->io_weight);
if (r < 0)
return bus_log_create_error(r);
}
for (size_t i = 0; i < ELEMENTSOF(settings); i++)
if (settings[i].value != UINT64_MAX) {
r = sd_bus_message_append(m, "(sv)", settings[i].name, "t", settings[i].value);
if (r < 0)
return bus_log_create_error(r);
}
r = sd_bus_message_close_container(m);
if (r < 0)