cryptsetup: RequiresMountsFor if source is a file

Fixes: https://bugzilla.novell.com/show_bug.cgi?id=730496
       https://bugs.freedesktop.org/show_bug.cgi?id=60821
This commit is contained in:
Thomas Weißschuh 2013-03-29 22:01:11 +00:00 committed by Zbigniew Jędrzejewski-Szmek
parent d7607eac63
commit 9ece938a67
2 changed files with 16 additions and 7 deletions

1
TODO
View file

@ -365,7 +365,6 @@ Features:
* cryptsetup:
- cryptsetup-generator: warn if the password files are world-readable
- cryptsetup-generator: add RequiresMountsFor= to cryptseup service files referencing a file, similar for devices
- cryptsetup-generator: allow specification of passwords in crypttab itself
- move cryptsetup key caching into kernel keyctl?
https://bugs.freedesktop.org/show_bug.cgi?id=54982

View file

@ -102,18 +102,17 @@ static int create_disk(
return -errno;
}
fprintf(f,
fputs(
"# Automatically generated by systemd-cryptsetup-generator\n\n"
"[Unit]\n"
"Description=Cryptography Setup for %%I\n"
"Description=Cryptography Setup for %I\n"
"Documentation=man:systemd-cryptsetup@.service(8) man:crypttab(5)\n"
"SourcePath=/etc/crypttab\n"
"Conflicts=umount.target\n"
"DefaultDependencies=no\n"
"BindsTo=%s dev-mapper-%%i.device\n"
"After=systemd-readahead-collect.service systemd-readahead-replay.service %s\n"
"Before=umount.target\n",
d, d);
"BindsTo=dev-mapper-%i.device\n"
"After=systemd-readahead-collect.service systemd-readahead-replay.service\n",
f);
if (!nofail)
fprintf(f,
@ -126,6 +125,17 @@ static int create_disk(
else
fputs("Before=local-fs.target\n", f);
if (is_device_path(u))
fprintf(f,
"BindsTo=%s\n"
"After=%s\n"
"Before=umount.target\n",
d, d);
else
fprintf(f,
"RequiresMountsFor=%s\n",
u);
fprintf(f,
"\n[Service]\n"
"Type=oneshot\n"