crypt-loop: cleanup cleanup procedures

Using initqueue --finished to cleanup stuff is not what the
initqueue/finished hook was meant for.

Move stuff to the real cleanup hook.
master
Harald Hoyer 2017-07-28 10:43:39 +02:00
parent c75ce02775
commit 2187b3d097
2 changed files with 3 additions and 6 deletions

View File

@ -218,8 +218,7 @@ readkey() {
if [ -f /lib/dracut-crypt-loop-lib.sh ]; then if [ -f /lib/dracut-crypt-loop-lib.sh ]; then
. /lib/dracut-crypt-loop-lib.sh . /lib/dracut-crypt-loop-lib.sh
loop_decrypt "$mntp" "$keypath" "$keydev" "$device" loop_decrypt "$mntp" "$keypath" "$keydev" "$device"
initqueue --onetime --finished --unique --name "crypt-loop-cleanup-99-${mntp##*/}" \ printf "%s\n" "umount \"$mntp\"; rmdir \"$mntp\";" > ${hookdir}/cleanup/"crypt-loop-cleanup-99-${mntp##*/}".sh
$(command -v umount) "$mntp; " $(command -v rmdir) "$mntp"
return 0 return 0
else else
die "No loop file support to decrypt '$keypath' on '$keydev'." die "No loop file support to decrypt '$keypath' on '$keydev'."

View File

@ -29,10 +29,8 @@ loop_decrypt() {


[ -b $key ] || die "Failed to unlock $keypath on $keydev for $device." [ -b $key ] || die "Failed to unlock $keypath on $keydev for $device."


initqueue --onetime --finished --unique --name "crypt-loop-cleanup-10-${key##*/}" \ printf "%s\n" "cryptsetup luksClose \"$key\"" > ${hookdir}/cleanup/"crypt-loop-cleanup-10-${key##*/}".sh
$(command -v cryptsetup) "luksClose $key" printf "%s\n" "losetup -d \"$loopdev\"" > ${hookdir}/cleanup/"crypt-loop-cleanup-20-${loopdev##*/}".sh
initqueue --onetime --finished --unique --name "crypt-loop-cleanup-20-${loopdev##*/}" \
$(command -v losetup) "-d $loopdev"
fi fi


cat $key cat $key