btrfs/011: umount device in _cleanup
authorLiu Bo <bo.li.liu@oracle.com>
Tue, 16 Jan 2018 20:10:17 +0000 (13:10 -0700)
committerEryu Guan <eguan@redhat.com>
Thu, 18 Jan 2018 14:10:34 +0000 (22:10 +0800)
btrfs/011 replaces the first device in SCRATCH_DEV_POOL in test,
which is SCRATCH_DEV, and it fails to umount SCRATCH_MNT when it
aborts, because _cleanup doesn't do any umount. This may leave
SCRATCH_DEV not used but other devices from SCRATCH_DEV_POOL still
mounted on SCRATCH_MNT. Then this results in SCRATCH_DEV unusable
for subsequent tests because _require_scratch couldn't umount detect
& umount SCRATCH_DEV correctly.

Fix it by umounting SCRATCH_MNT in _cleanup, so the test always
umounts the devices on exit.

[eguan: add comments and rewrite summary and commit log]

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Tested-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
tests/btrfs/011

index 28f138843bba7db40ba7f65bccf39c4f004d9159..4aae22dc6292a37c06280aabb386165926d872bf 100755 (executable)
@@ -51,6 +51,10 @@ _cleanup()
        fi
        wait
        rm -f $tmp.tmp
        fi
        wait
        rm -f $tmp.tmp
+       # we need this umount and couldn't rely on _require_scratch to umount
+       # it from next test, because we would replace SCRATCH_DEV, which is
+       # needed by _require_scratch, and make it umounted.
+       _scratch_unmount > /dev/null 2>&1
 }
 trap "_cleanup; exit \$status" 0 1 2 3 15
 
 }
 trap "_cleanup; exit \$status" 0 1 2 3 15