diff options
author | Lennart Poettering <lennart@poettering.net> | 2019-12-19 17:38:55 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2020-01-21 20:23:13 +0100 |
commit | a7e885587949b6793ccf389505f3c436315fa653 (patch) | |
tree | 938983c24a144569fff6ad0fe7ddbb6e189b2b64 /src/fstab-generator | |
parent | 6bbd539e5e7226ff1e2574e42c8bc821b68cfa19 (diff) | |
download | systemd-a7e885587949b6793ccf389505f3c436315fa653.tar.gz |
units: introduce blockdev@.target for properly ordering mounts/swaps against cryptsetup
Let's hook it into both cryptsetup-generator and gpt-auto-generator with
a shared implementation in generator.c
Fixes: #8472
Diffstat (limited to 'src/fstab-generator')
-rw-r--r-- | src/fstab-generator/fstab-generator.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index a75a74bb3c..5a0a871759 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -118,11 +118,18 @@ static int add_swap( fprintf(f, "[Unit]\n" - "SourcePath=%s\n" - "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n\n" - "[Swap]\n", + "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n" + "SourcePath=%s\n", fstab_path()); + r = generator_write_blockdev_dependency(f, what); + if (r < 0) + return r; + + fprintf(f, + "\n" + "[Swap]\n"); + r = write_what(f, what); if (r < 0) return r; @@ -374,8 +381,8 @@ static int add_mount( fprintf(f, "[Unit]\n" - "SourcePath=%s\n" - "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n", + "Documentation=man:fstab(5) man:systemd-fstab-generator(8)\n" + "SourcePath=%s\n", source); /* All mounts under /sysroot need to happen later, at initrd-fs.target time. IOW, it's not @@ -422,7 +429,14 @@ static int add_mount( return r; } - fprintf(f, "\n[Mount]\n"); + r = generator_write_blockdev_dependency(f, what); + if (r < 0) + return r; + + fprintf(f, + "\n" + "[Mount]\n"); + if (original_where) fprintf(f, "# Canonicalized from %s\n", original_where); |