[systemd-commits] src/cryptsetup

Harald Hoyer harald at kemper.freedesktop.org
Thu Apr 4 08:41:22 PDT 2013


 src/cryptsetup/cryptsetup-generator.c |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)

New commits:
commit 68395007f39b326978d7936f203be8fcd24bd222
Author: Harald Hoyer <harald at redhat.com>
Date:   Fri Mar 1 15:13:43 2013 +0100

    cryptsetup-generator: add JobTimeoutSec=0 for the decrypted crypt devices
    
    The password query for a crypto device currently times out after 90s,
    which is too short to grab a cup of coffee when a machine boots	up.
    
    The resulting decrypted device /dev/mapper/luks-<uuid> might not
    be a mountpoint (but part of a LVM PV or raid array)
    and therefore the timeout cannot be controlled by the settings
    in /etc/fstab. For this reason this device should not carry its own timeout.
    
    Also the encrypted device /dev/disk/by-*/* already has a timeout and
    additionally the timeout for the password query is set in /etc/crypttab.
    
    This patch disables the timeout of the resulting decrypted devices by creating
    <device-unit>.d/50-job-timeout-sec-0.conf files with "JobTimeoutSec=0".

diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c
index 6b9bc55..fd2080b 100644
--- a/src/cryptsetup/cryptsetup-generator.c
+++ b/src/cryptsetup/cryptsetup-generator.c
@@ -213,6 +213,23 @@ static int create_disk(
                 return -errno;
         }
 
+        if (!noauto && !nofail) {
+                int r;
+                free(p);
+                p = strjoin(arg_dest, "/dev-mapper-", e, ".device.d/50-job-timeout-sec-0.conf", NULL);
+                if (!p)
+                        return log_oom();
+
+                mkdir_parents_label(p, 0755);
+
+                r = write_string_file(p,
+                                "# Automatically generated by systemd-cryptsetup-generator\n\n"
+                                "[Unit]\n"
+                                "JobTimeoutSec=0\n"); /* the binary handles timeouts anyway */
+                if (r)
+                        return r;
+        }
+
         return 0;
 }
 



More information about the systemd-commits mailing list