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.
153 lines
6.6 KiB
153 lines
6.6 KiB
7 years ago
|
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 13c93f485..f06bc29c2 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 7085a1623..a9197ab40 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 5529d3bf7..e04f08bd3 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 49dc8f14b..82a280d86 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 a375e6188..000000000
|
||
|
--- 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 c306d521f..d485b0672 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
|
||
|
|