]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
91crypt-loop: use initqueue for cleanup strategy
authorLeho Kraav <leho@kraav.com>
Tue, 24 Jul 2012 12:08:54 +0000 (15:08 +0300)
committerHarald Hoyer <harald@redhat.com>
Wed, 25 Jul 2012 08:31:43 +0000 (10:31 +0200)
modules.d/90crypt/crypt-lib.sh
modules.d/91crypt-loop/crypt-loop-lib.sh

index 5f7567e35bf039fcf4d1c5eeafad58e2149a3514..d5caa8596f5a3e8dcd3b1e92a96ad648d4ce8efd 100755 (executable)
@@ -188,6 +188,9 @@ readkey() {
             if [ -f /lib/dracut-crypt-loop-lib.sh ]; then
                 . /lib/dracut-crypt-loop-lib.sh
                 loop_decrypt "$mntp" "$keypath" "$keydev" "$device"
+                initqueue --onetime --finished --unique --name "crypt-loop-cleanup-99-$(basename $mntp)" \
+                    $(command -v umount) "$mntp; " $(command -v rmdir) "$mntp"
+                return 0
             else
                 die "No loop file support to decrypt '$keypath' on '$keydev'."
             fi
index 63a553c2678d2d4e8bf69ab22df4a120cf5befea..6774e7d8573c861d5e71edab14ff7b92f9de7947 100644 (file)
@@ -32,6 +32,11 @@ loop_decrypt() {
             --tty-echo-off
 
         [ -b $key ] || die "Tried setting it up, but keyfile block device was still not found!" 
+
+        initqueue --onetime --finished --unique --name "crypt-loop-cleanup-10-$(basename $key)" \
+            $(command -v cryptsetup) "luksClose $key"
+        initqueue --onetime --finished --unique --name "crypt-loop-cleanup-20-$(basename $loopdev)" \
+            $(command -v losetup) "-d $loopdev"
     else
         info "Existing keyfile found, re-using it for $device"
     fi