|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
From ed5678903964de92ba74baf2e5597914a3d44583 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
From: Lennart Poettering <lennart@poettering.net>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
Date: Wed, 18 Jun 2014 00:07:56 +0200
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
Subject: [PATCH] cryptsetup: introduce new cryptsetup-pre.traget unit so that
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
services can make sure they are started before and stopped after any LUKS
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
setup
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
https://bugzilla.redhat.com/show_bug.cgi?id=1097938
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
(cherry picked from commit 9542239eaf481decca6c254dffb3f2b4e716545e)
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
---
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
Makefile.am | 3 ++-
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
man/systemd.special.xml | 22 ++++++++++++++++++++++
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
src/cryptsetup/cryptsetup-generator.c | 2 +-
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
units/cryptsetup-pre.target | 11 +++++++++++
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
4 files changed, 36 insertions(+), 2 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
create mode 100644 units/cryptsetup-pre.target
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
diff --git a/Makefile.am b/Makefile.am
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
index cb9b1fa8..75d62f06 100644
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
--- a/Makefile.am
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+++ b/Makefile.am
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
@@ -3846,7 +3846,8 @@ systemgenerator_PROGRAMS += \
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
systemd-cryptsetup-generator
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
dist_systemunit_DATA += \
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
- units/cryptsetup.target
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ units/cryptsetup.target \
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ units/cryptsetup-pre.target
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
systemd_cryptsetup_SOURCES = \
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
src/cryptsetup/cryptsetup.c
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
index cda6edd4..f29cc23c 100644
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
--- a/man/systemd.special.xml
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+++ b/man/systemd.special.xml
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
@@ -52,6 +52,7 @@
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<filename>bluetooth.target</filename>,
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<filename>ctrl-alt-del.target</filename>,
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<filename>cryptsetup.target</filename>,
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ <filename>cryptsetup-pre.target</filename>,
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<filename>dbus.service</filename>,
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<filename>dbus.socket</filename>,
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<filename>default.target</filename>,
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
@@ -841,6 +842,27 @@
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<variablelist>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<varlistentry>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ <term><filename>cryptsetup-pre.target</filename></term>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ <listitem>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ <para>This passive target unit
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ may be pulled in by services
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ that want to run before any
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ encrypted block device is set
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ up. All encrypted block
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ devices are set up after this
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ target has been reached. Since
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ the shutdown order is
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ implicitly the reverse
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ start-up order between units
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ this target is particularly
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ useful to ensure that a
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ service is shut down only
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ after all encrypted block
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ devices are fully
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ stopped.</para>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ </listitem>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ </varlistentry>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ <varlistentry>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<term><filename>local-fs-pre.target</filename></term>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<listitem>
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
<para>This target unit is
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
index f4eeb2ad..dfdca1e4 100644
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
--- a/src/cryptsetup/cryptsetup-generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+++ b/src/cryptsetup/cryptsetup-generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
@@ -127,7 +127,7 @@ static int create_disk(
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
"Conflicts=umount.target\n"
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
"BindsTo=dev-mapper-%i.device\n"
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
"IgnoreOnIsolate=true\n"
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
- "After=systemd-readahead-collect.service systemd-readahead-replay.service\n",
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+ "After=systemd-readahead-collect.service systemd-readahead-replay.service cryptsetup-pre.target\n",
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
f);
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
if (!nofail)
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
diff --git a/units/cryptsetup-pre.target b/units/cryptsetup-pre.target
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
new file mode 100644
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
index 00000000..65353419
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
--- /dev/null
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+++ b/units/cryptsetup-pre.target
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
@@ -0,0 +1,11 @@
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+# This file is part of systemd.
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+#
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+# systemd is free software; you can redistribute it and/or modify it
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+# under the terms of the GNU Lesser General Public License as published by
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+# the Free Software Foundation; either version 2.1 of the License, or
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+# (at your option) any later version.
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+[Unit]
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+Description=Encrypted Volumes (Pre)
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+Documentation=man:systemd.special(7)
|
|
Zbigniew Jędrzejewski-Szmek |
5509c0 |
+RefuseManualStart=yes
|