chiark / gitweb /
: ${:=} not ${:=}
[autopkgtest.git] / xen / cleanup
index 76a9a23e7901a21e3187ff0606b91599a7be1c63..050772062b48ad7cc41e3c58ab8e956bad55fe84 100755 (executable)
@@ -1,14 +1,27 @@
 #!/bin/bash
 set -e
+adt_readconfig_needlock=y
 . ${ADT_XENLVM_SHARE:=/usr/share/autopkgtest/xenlvm}/readconfig
 test $nonoptargs = 0 || fail "non-option arguments not allowed"
 
-mkdir -p $adt_play $snap
+mkdir -p $adt_play
 
-try () { printf "%s\n" "- $*"; "$@" >/dev/null 2>&1 ||:; }
+try_es () { printf "%s\n" "- $*"; "$@" >/dev/null 2>&1; }
+try () { try_es "$@" ||:; }
 
 n=0
-if xm destroy $adt_xmname 2>/dev/null; then sleep 5; fi
+try xm destroy $adt_xmname 2>/dev/null
 try umount $lvm_baselv_namepath
-try dmsetup remove $adt_devmapper_cowdev
-rm -f $lvm_fslink_ptr
+for fs in fs swap; do
+ swap=${fs#fs}; eval "
+  sleeptime=0
+  while try_es dmsetup info \$adt_devmapper_${swap}cowdev; do
+       try dmsetup remove \$adt_devmapper_${swap}cowdev
+       [ \$sleeptime -le 5 ] || \
+               fail "timed out trying dmsetup info/remove ${swap}"
+       sleep \$sleeptime
+       sleeptime=\$(( \$sleeptime + 1 ))
+  done
+ "
+done
+rm -f $lvm_fslink_ptr $lvm_swaplink_ptr