diff options
author | Luca Boccassi <luca.boccassi@microsoft.com> | 2021-04-09 10:56:13 +0100 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-04-11 23:50:31 +0900 |
commit | 0efcbecd8b266526bf4a8fd06b9b7e7c5c43566d (patch) | |
tree | b6f6b528fb58938ba5a7042f30d29b312271490e /src/partition | |
parent | 3f66ded568d7bd06c0c2794766eb5929847f62f4 (diff) | |
download | systemd-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-x | src/partition/test-repart.sh | 5 |
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 |