fstab-generator: allow x-systemd.device-timeout for swap units

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2014-06-27 15:03:05 -04:00
parent 2968644080
commit b3208b6629
2 changed files with 20 additions and 9 deletions

View File

@ -129,6 +129,11 @@ static int add_swap(const char *what, struct mntent *me) {
return -errno;
}
/* use what as where, to have a nicer error message */
r = generator_write_timeouts(arg_dest, what, what, me->mnt_opts, NULL);
if (r < 0)
return r;
if (!noauto) {
lnk = strjoin(arg_dest, "/" SPECIAL_SWAP_TARGET ".wants/", name, NULL);
if (!lnk)

View File

@ -97,7 +97,7 @@ int generator_write_timeouts(const char *dir, const char *what, const char *wher
* user input, like crypto devices. */
_cleanup_free_ char *node = NULL, *unit = NULL, *t = NULL;
char *prefix, *start, *timeout, *postfix;
char *start, *timeout;
usec_t u;
int r;
size_t len;
@ -107,9 +107,11 @@ int generator_write_timeouts(const char *dir, const char *what, const char *wher
else if ((start = mount_test_option(opts, "x-systemd.device-timeout")))
timeout = start + 25;
else {
*filtered = strdup(opts);
if (!*filtered)
return log_oom();
if (filtered) {
*filtered = strdup(opts);
if (!*filtered)
return log_oom();
}
return 0;
}
@ -119,11 +121,15 @@ int generator_write_timeouts(const char *dir, const char *what, const char *wher
if (!t)
return -ENOMEM;
prefix = strndupa(opts, start - opts - (start != opts));
postfix = timeout + len + (timeout[len] != '\0');
*filtered = strjoin(prefix, *postfix ? postfix : NULL, NULL);
if (!*filtered)
return log_oom();
if (filtered) {
char *prefix, *postfix;
prefix = strndupa(opts, start - opts - (start != opts));
postfix = timeout + len + (timeout[len] != '\0');
*filtered = strjoin(prefix, *postfix ? postfix : NULL, NULL);
if (!*filtered)
return log_oom();
}
r = parse_sec(t, &u);
if (r < 0) {