Check if luks device is already open before trying to open it.
authorTails developers <amnesia@boum.org>
Wed, 15 Feb 2012 11:10:06 +0000 (12:10 +0100)
committerDaniel Baumann <daniel@debian.org>
Thu, 5 Apr 2012 05:45:47 +0000 (07:45 +0200)
scripts/live-helpers

index a69ce29..8822125 100644 (file)
@@ -721,6 +721,21 @@ open_luks_device ()
                opts="${opts} --readonly"
        fi
 
+       if /sbin/cryptsetup status "${name}" >/dev/null 2>&1
+       then
+               re="^[[:space:]]*device:[[:space:]]*\([^[:space:]]*\)$"
+               opened_dev=$(cryptsetup status ${name} 2>/dev/null | grep "${re}" | sed "s|${re}|\1|")
+               if [ "${opened_dev}" = "${dev}" ]
+               then
+                       luks_device="/dev/mapper/${name}"
+                       echo ${luks_device}
+                       return 0
+               else
+                       log_warning_msg "Cannot open luks device ${dev} since ${opened_dev} already is opened with its name"
+                       return 1
+               fi
+       fi
+
        load_keymap
 
        while true