From: Lennart Poettering Date: Mon, 5 Dec 2016 18:40:13 +0000 (+0100) Subject: core: add specifier expansion to RequiresMountsFor= X-Git-Tag: v233~339^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=744bb5b1bea4d04363f7894e86701efdd75b8acb;p=thirdparty%2Fsystemd.git core: add specifier expansion to RequiresMountsFor= This might be useful for some people, for example to pull in mounts for paths including the machine ID or hostname. --- diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index 3ffb417f97b..85bac9ea5bc 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -2565,7 +2565,7 @@ int config_parse_unit_requires_mounts_for( assert(data); for (p = rvalue;; ) { - _cleanup_free_ char *word = NULL; + _cleanup_free_ char *word = NULL, *resolved = NULL; r = extract_first_word(&p, &word, NULL, EXTRACT_QUOTES); if (r == 0) @@ -2583,9 +2583,15 @@ int config_parse_unit_requires_mounts_for( continue; } - r = unit_require_mounts_for(u, word); + r = unit_full_printf(u, word, &resolved); + if (r < 0) { + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to resolve unit name \"%s\", ignoring: %m", word); + continue; + } + + r = unit_require_mounts_for(u, resolved); if (r < 0) { - log_syntax(unit, LOG_ERR, filename, line, r, "Failed to add required mount \"%s\", ignoring: %m", word); + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to add required mount \"%s\", ignoring: %m", resolved); continue; } }