From: Yu Watanabe Date: Fri, 25 May 2018 02:25:43 +0000 (+0900) Subject: load-fragment: make IOScheduling{Class,Priority}= accept the empty string X-Git-Tag: v239~179^2~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=617d253afad10ca9c7861eb3a2b381a8f95cf4ad;p=thirdparty%2Fsystemd.git load-fragment: make IOScheduling{Class,Priority}= accept the empty string --- diff --git a/man/systemd.exec.xml b/man/systemd.exec.xml index b21c5aa104b..8fb9ecc6dca 100644 --- a/man/systemd.exec.xml +++ b/man/systemd.exec.xml @@ -728,7 +728,8 @@ CapabilityBoundingSet=~CAP_B CAP_C Sets the I/O scheduling class for executed processes. Takes an integer between 0 and 3 or one of the strings , , or - . See + . If the empty string is assigned to this option, all prior assignments to both + IOSchedulingClass= and IOSchedulingPriority= have no effect. See ioprio_set2 for details. @@ -738,7 +739,9 @@ CapabilityBoundingSet=~CAP_B CAP_C Sets the I/O scheduling priority for executed processes. Takes an integer between 0 (highest priority) and 7 (lowest priority). The available priorities depend on the selected I/O scheduling class (see - above). See ioprio_set2 for + above). If the empty string is assigned to this option, all prior assignments to both + IOSchedulingClass= and IOSchedulingPriority= have no effect. + See ioprio_set2 for details. diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index d2ce73f726e..94583b5662a 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -1115,6 +1115,12 @@ int config_parse_exec_io_class(const char *unit, assert(rvalue); assert(data); + if (isempty(rvalue)) { + c->ioprio_set = false; + c->ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 0); + return 0; + } + x = ioprio_class_from_string(rvalue); if (x < 0) { log_syntax(unit, LOG_ERR, filename, line, 0, "Failed to parse IO scheduling class, ignoring: %s", rvalue); @@ -1146,6 +1152,12 @@ int config_parse_exec_io_priority(const char *unit, assert(rvalue); assert(data); + if (isempty(rvalue)) { + c->ioprio_set = false; + c->ioprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 0); + return 0; + } + r = ioprio_parse_priority(rvalue, &i); if (r < 0) { log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse IO priority, ignoring: %s", rvalue);