chiark / gitweb /
cryptsetup-generator: add JobTimeoutSec=0 for the decrypted crypt devices
authorHarald Hoyer <harald@redhat.com>
Fri, 1 Mar 2013 14:13:43 +0000 (15:13 +0100)
committerHarald Hoyer <harald@redhat.com>
Thu, 4 Apr 2013 15:40:09 +0000 (17:40 +0200)
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".

src/cryptsetup/cryptsetup-generator.c

index 6b9bc554be39b70dbe6cbc073ffda1909a914106..fd2080b539b75fdfd5457819c0bbeec9b25151a4 100644 (file)
@@ -213,6 +213,23 @@ static int create_disk(
                 return -errno;
         }
 
                 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;
 }
 
         return 0;
 }