You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
6.6 KiB
152 lines
6.6 KiB
From 0d13caa0714c32af45165310e93f62c965f45b01 Mon Sep 17 00:00:00 2001 |
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> |
|
Date: Thu, 12 Oct 2017 22:34:54 +0200 |
|
Subject: [PATCH] units: replace remote-cryptsetup-pre.target with |
|
remote-fs-pre.target |
|
|
|
remote-cryptsetup-pre.target was designed as an active unit (that pulls in |
|
network-online.target), the opposite of remote-fs-pre.target (a passive unit, |
|
with individual provider services ordering itself before it and pulling it in, |
|
for example iscsi.service and nfs-client.target). |
|
|
|
To make remote-cryptsetup-pre.target really work, those services should be |
|
ordered before it too. But this would require updates to all those services, |
|
not just changes from systemd side. |
|
|
|
But the requirements for remote-fs-pre.target and remote-cryptset-pre.target |
|
are fairly similar (e.g. iscsi devices can certainly be used for both), so |
|
let's reuse remote-fs-pre.target also for remote cryptsetup units. This loses |
|
a bit of flexibility, but does away with the requirement for various provider |
|
services to know about remote-cryptsetup-pre.target. |
|
|
|
Cherry-picked from: a0dd209763f9e67054ee322a2dfd52bccf345c2e |
|
Resolves: #1477757 |
|
--- |
|
Makefile.am | 3 +-- |
|
man/crypttab.xml | 2 +- |
|
man/systemd.special.xml | 20 ++++---------------- |
|
src/cryptsetup/cryptsetup-generator.c | 2 +- |
|
units/remote-cryptsetup-pre.target | 15 --------------- |
|
units/remote-cryptsetup.target | 2 +- |
|
6 files changed, 8 insertions(+), 36 deletions(-) |
|
delete mode 100644 units/remote-cryptsetup-pre.target |
|
|
|
diff --git a/Makefile.am b/Makefile.am |
|
index 13c93f485e..f06bc29c25 100644 |
|
--- a/Makefile.am |
|
+++ b/Makefile.am |
|
@@ -4864,8 +4864,7 @@ systemgenerator_PROGRAMS += \ |
|
dist_systemunit_DATA += \ |
|
units/cryptsetup.target \ |
|
units/cryptsetup-pre.target \ |
|
- units/remote-cryptsetup.target \ |
|
- units/remote-cryptsetup-pre.target |
|
+ units/remote-cryptsetup.target |
|
|
|
systemd_cryptsetup_SOURCES = \ |
|
src/cryptsetup/cryptsetup.c |
|
diff --git a/man/crypttab.xml b/man/crypttab.xml |
|
index 7085a16234..a9197ab40e 100644 |
|
--- a/man/crypttab.xml |
|
+++ b/man/crypttab.xml |
|
@@ -196,7 +196,7 @@ |
|
started after the network is available, similarly to |
|
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
|
units marked with <option>_netdev</option>. The service unit to set up this device |
|
- will be ordered between <filename>remote-cryptsetup-pre.target</filename> and |
|
+ will be ordered between <filename>remote-fs-pre.target</filename> and |
|
<filename>remote-cryptsetup.target</filename>, instead of |
|
<filename>cryptsetup-pre.target</filename> and |
|
<filename>cryptsetup.target</filename>.</para></listitem> |
|
diff --git a/man/systemd.special.xml b/man/systemd.special.xml |
|
index 5529d3bf7e..e04f08bd37 100644 |
|
--- a/man/systemd.special.xml |
|
+++ b/man/systemd.special.xml |
|
@@ -81,7 +81,6 @@ |
|
<filename>poweroff.target</filename>, |
|
<filename>printer.target</filename>, |
|
<filename>reboot.target</filename>, |
|
- <filename>remote-cryptsetup-pre.target</filename>, |
|
<filename>remote-cryptsetup.target</filename>, |
|
<filename>remote-fs.target</filename>, |
|
<filename>remote-fs-pre.target</filename>, |
|
@@ -406,18 +405,6 @@ |
|
this target unit, for compatibility with SysV.</para> |
|
</listitem> |
|
</varlistentry> |
|
- <varlistentry> |
|
- <term><filename>remote-cryptsetup-pre.target</filename></term> |
|
- <listitem> |
|
- <para>This target unit is automatically ordered before all cryptsetup devices |
|
- marked with the <option>_netdev</option>. It can be used to execute additional |
|
- units before such devices are set up.</para> |
|
- |
|
- <para>It is ordered after <filename>network.target</filename> and |
|
- <filename>network-online.target</filename>, and also pulls the latter in as a |
|
- <varname>Wants=</varname> dependency.</para> |
|
- </listitem> |
|
- </varlistentry> |
|
<varlistentry> |
|
<term><filename>remote-cryptsetup.target</filename></term> |
|
<listitem> |
|
@@ -768,9 +755,10 @@ |
|
<term><filename>remote-fs-pre.target</filename></term> |
|
<listitem> |
|
<para>This target unit is automatically ordered before all |
|
- remote mount point units (see above). It can be used to run |
|
- certain units before the remote mounts are established. Note |
|
- that this unit is generally not part of the initial |
|
+ mount point units (see above) and cryptsetup devices |
|
+ marked with the <option>_netdev</option>. It can be used to run |
|
+ certain units before remote encrypted devices and mounts are established. |
|
+ Note that this unit is generally not part of the initial |
|
transaction, unless the unit that wants to be ordered before |
|
all remote mounts pulls it in via a |
|
<varname>Wants=</varname> type dependency. If the unit wants |
|
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c |
|
index 49dc8f14b4..82a280d865 100644 |
|
--- a/src/cryptsetup/cryptsetup-generator.c |
|
+++ b/src/cryptsetup/cryptsetup-generator.c |
|
@@ -114,7 +114,7 @@ static int create_disk( |
|
"IgnoreOnIsolate=true\n" |
|
"After=systemd-readahead-collect.service systemd-readahead-replay.service\n" |
|
"After=%s\n", |
|
- netdev ? "remote-cryptsetup-pre.target" : "cryptsetup-pre.target"); |
|
+ netdev ? "remote-fs-pre.target" : "cryptsetup-pre.target"); |
|
|
|
if (!nofail) |
|
fprintf(f, |
|
diff --git a/units/remote-cryptsetup-pre.target b/units/remote-cryptsetup-pre.target |
|
deleted file mode 100644 |
|
index a375e61889..0000000000 |
|
--- a/units/remote-cryptsetup-pre.target |
|
+++ /dev/null |
|
@@ -1,15 +0,0 @@ |
|
-# This file is part of systemd. |
|
-# |
|
-# systemd is free software; you can redistribute it and/or modify it |
|
-# under the terms of the GNU Lesser General Public License as published by |
|
-# the Free Software Foundation; either version 2.1 of the License, or |
|
-# (at your option) any later version. |
|
- |
|
-[Unit] |
|
-Description=Remote Encrypted Volumes (Pre) |
|
-Documentation=man:systemd.special(7) |
|
-RefuseManualStart=yes |
|
-Before=remote-cryptsetup.target |
|
- |
|
-After=network.target network-online.target |
|
-Wants=network-online.target |
|
diff --git a/units/remote-cryptsetup.target b/units/remote-cryptsetup.target |
|
index c306d521f7..d485b06726 100644 |
|
--- a/units/remote-cryptsetup.target |
|
+++ b/units/remote-cryptsetup.target |
|
@@ -8,7 +8,7 @@ |
|
[Unit] |
|
Description=Remote Encrypted Volumes |
|
Documentation=man:systemd.special(7) |
|
-After=remote-cryptsetup-pre.target |
|
+After=remote-fs-pre.target |
|
DefaultDependencies=no |
|
Conflicts=shutdown.target |
|
|
|
|