summaryrefslogtreecommitdiff
path: root/src/partition
diff options
context:
space:
mode:
authorLuca Boccassi <luca.boccassi@microsoft.com>2021-04-09 10:56:13 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-04-11 23:50:31 +0900
commit0efcbecd8b266526bf4a8fd06b9b7e7c5c43566d (patch)
treeb6f6b528fb58938ba5a7042f30d29b312271490e /src/partition
parent3f66ded568d7bd06c0c2794766eb5929847f62f4 (diff)
downloadsystemd-0efcbecd8b266526bf4a8fd06b9b7e7c5c43566d.tar.gz
test-repart: use cryptsetup and losetup autoclose
The test occasionally fails as the umount is not yet completed when cryptsetup close is invoked. Both cryptsetup and losetup have supported deferred cleanup for some time now, so use it instead to avoid races. ++ losetup -P --show --find /tmp/test-repart.dMOfYQ8UUF/zzz + LOOP=/dev/loop6 + VOLUME=test-repart-11882 + touch /tmp/test-repart.dMOfYQ8UUF/empty-password + cryptsetup open --type=luks2 --key-file=/tmp/test-repart.dMOfYQ8UUF/empty*** test-repart-11882 + mkdir /tmp/test-repart.dMOfYQ8UUF/mount + mount -t ext4 /dev/mapper/test-repart-11882 /tmp/test-repart.dMOfYQ8UUF/mount + diff -r /tmp/test-repart.dMOfYQ8UUF/mount/def /tmp/test-repart.dMOfYQ8UUF/definitions + umount /tmp/test-repart.dMOfYQ8UUF/mount + cryptsetup close test-repart-11882 Device test-repart-11882 is still in use. + rm -rf /tmp/test-repart.dMOfYQ8UUF
Diffstat (limited to 'src/partition')
-rwxr-xr-xsrc/partition/test-repart.sh5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/partition/test-repart.sh b/src/partition/test-repart.sh
index d21865dd64..3696c3cbd6 100755
--- a/src/partition/test-repart.sh
+++ b/src/partition/test-repart.sh
@@ -200,10 +200,11 @@ EOF
cryptsetup open --type=luks2 --key-file=$D/empty-password ${LOOP}p7 $VOLUME
mkdir $D/mount
mount -t ext4 /dev/mapper/$VOLUME $D/mount
+ # Use deferred closing on the mapper and autoclear on the loop, so they are cleaned up on umount
+ cryptsetup close --deferred $VOLUME
+ losetup -d $LOOP
diff -r $D/mount/def $D/definitions > /dev/null
umount $D/mount
- cryptsetup close $VOLUME
- losetup -d $LOOP
else
echo "### Skipping Format=/Encrypt=/CopyFiles= test, lacking privileges or missing cryptsetup/diff/losetup"
fi