ioprio-util: add macro for default ioprio settings

IOPRIO_CLASS_NONE with any priority value actually is an alias for
IOPRIO_CLASS_BE with priority value 4 – which is the default ioprio for
all processes.

We got this right at one place, but wrong at three others (where we
assumed the default value was 0, not 4). Let's add a
macro that encodes this properly, and use it everywhere.
This commit is contained in:
Lennart Poettering
2021-11-24 16:12:15 +01:00
parent 032b3afbf4
commit 0692548c73
3 changed files with 8 additions and 4 deletions
+4
View File
@@ -16,3 +16,7 @@ static inline bool ioprio_priority_is_valid(int i) {
}
int ioprio_parse_priority(const char *s, int *ret);
/* IOPRIO_CLASS_NONE with any prio value is another way to say IOPRIO_CLASS_BE with level 4. Encode that in a
* proper macro. */
#define IOPRIO_DEFAULT_CLASS_AND_PRIO ioprio_prio_value(IOPRIO_CLASS_BE, 4)
+2 -2
View File
@@ -5069,7 +5069,7 @@ void exec_context_init(ExecContext *c) {
assert(c);
c->umask = 0022;
c->ioprio = ioprio_prio_value(IOPRIO_CLASS_BE, 0);
c->ioprio = IOPRIO_DEFAULT_CLASS_AND_PRIO;
c->cpu_sched_policy = SCHED_OTHER;
c->syslog_priority = LOG_DAEMON|LOG_INFO;
c->syslog_level_prefix = true;
@@ -6021,7 +6021,7 @@ int exec_context_get_effective_ioprio(const ExecContext *c) {
p = ioprio_get(IOPRIO_WHO_PROCESS, 0);
if (p < 0)
return ioprio_prio_value(IOPRIO_CLASS_BE, 4);
return IOPRIO_DEFAULT_CLASS_AND_PRIO;
return p;
}
+2 -2
View File
@@ -1417,7 +1417,7 @@ int config_parse_exec_io_class(const char *unit,
if (isempty(rvalue)) {
c->ioprio_set = false;
c->ioprio = ioprio_prio_value(IOPRIO_CLASS_BE, 0);
c->ioprio = IOPRIO_DEFAULT_CLASS_AND_PRIO;
return 0;
}
@@ -1454,7 +1454,7 @@ int config_parse_exec_io_priority(const char *unit,
if (isempty(rvalue)) {
c->ioprio_set = false;
c->ioprio = ioprio_prio_value(IOPRIO_CLASS_BE, 0);
c->ioprio = IOPRIO_DEFAULT_CLASS_AND_PRIO;
return 0;
}