1cc3df3
From bb6caff37bdf0de68a5f9243fe282b2df1da6737 Mon Sep 17 00:00:00 2001
1cc3df3
From: Lennart Poettering <lennart@poettering.net>
1cc3df3
Date: Mon, 23 Jun 2014 19:18:44 +0200
1cc3df3
Subject: [PATCH] cryptsetup: don't add unit dependency on /dev/null devices
1cc3df3
 when it is listed as password file
1cc3df3
1cc3df3
As special magic, don't create device dependencies for /dev/null. Of
1cc3df3
course, there might be similar devices we might want to include, but
1cc3df3
given that none of them really make sense to specify as password source
1cc3df3
there's really no point in checking for anything else here.
1cc3df3
1cc3df3
https://bugs.freedesktop.org/show_bug.cgi?id=75816
1cc3df3
(cherry picked from commit bde29068aa3815c88190a91e9867605a0aeaf9c4)
1cc3df3
1cc3df3
Conflicts:
1cc3df3
	src/cryptsetup/cryptsetup-generator.c
1cc3df3
---
1cc3df3
 src/cryptsetup/cryptsetup-generator.c | 18 +++++++++++-------
1cc3df3
 1 file changed, 11 insertions(+), 7 deletions(-)
1cc3df3
1cc3df3
diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
1cc3df3
index 11e5268185..1b5f8bec30 100644
1cc3df3
--- a/src/cryptsetup/cryptsetup-generator.c
1cc3df3
+++ b/src/cryptsetup/cryptsetup-generator.c
1cc3df3
@@ -30,6 +30,7 @@
1cc3df3
 #include "virt.h"
1cc3df3
 #include "strv.h"
1cc3df3
 #include "fileio.h"
1cc3df3
+#include "path-util.h"
1cc3df3
 
1cc3df3
 static const char *arg_dest = "/tmp";
1cc3df3
 static bool arg_enabled = true;
1cc3df3
@@ -137,14 +138,17 @@ static int create_disk(
1cc3df3
                         if (uu == NULL)
1cc3df3
                                 return log_oom();
1cc3df3
 
1cc3df3
-                        if (is_device_path(uu)) {
1cc3df3
-                                _cleanup_free_ char *dd = unit_name_from_path(uu, ".device");
1cc3df3
-                                if (dd == NULL)
1cc3df3
-                                        return log_oom();
1cc3df3
+                        if (!path_equal(uu, "/dev/null")) {
1cc3df3
+
1cc3df3
+                                if (is_device_path(uu)) {
1cc3df3
+                                        _cleanup_free_ char *dd = unit_name_from_path(uu, ".device");
1cc3df3
+                                        if (dd == NULL)
1cc3df3
+                                                return log_oom();
1cc3df3
 
1cc3df3
-                                fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
1cc3df3
-                        } else
1cc3df3
-                                fprintf(f, "RequiresMountsFor=%s\n", password);
1cc3df3
+                                        fprintf(f, "After=%1$s\nRequires=%1$s\n", dd);
1cc3df3
+                                } else
1cc3df3
+                                        fprintf(f, "RequiresMountsFor=%s\n", password);
1cc3df3
+                        }
1cc3df3
                 }
1cc3df3
         }
1cc3df3