fstab-generator: allow x-systemd.device-timeout for swap units
This commit is contained in:
parent
2968644080
commit
b3208b6629
|
@ -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)
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue