summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2021-03-23 21:28:28 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2021-03-23 21:28:28 +0100
commitdd1f5f9a24fc906de7e6dd064ecdd8fdfa9eebda (patch)
treeab84d2bc2f6ff47c5d3b85903f431cbb13227a1e
parent93f2d194aca4a589cd38dd8bdd99cad2945dd21c (diff)
downloadlvm2-dd1f5f9a24fc906de7e6dd064ecdd8fdfa9eebda.tar.gz
tests: aux clean DM on top of MD
Before cleaning MD, try to remove any DM on top such MD. Check is made through DM table check. Maybe parse /proc/mdstat for this???
-rw-r--r--test/lib/aux.sh10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index 386918041..08eeac55b 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -783,11 +783,21 @@ cleanup_md_dev() {
mddev=$(< MD_DEV)
base=$(basename "$mddev")
+ # try to find and remove any DM device on top of cleaned MD
+ # assume /dev/mdXXX is 9:MINOR
+ local minor=${mddev##/dev/md}
+ for i in $(dmsetup table | grep 9:$minor | cut -d: -f1) ; do
+ dmsetup remove $i || {
+ dmsetup --force remove $i || true
+ }
+ done
+
for i in {0..10} ; do
grep -q "$base" /proc/mdstat || break
test "$i" = 0 || {
sleep .1
echo "$mddev is still present, stopping again"
+ cat /proc/mdstat
}
mdadm --stop "$mddev" || true
udev_wait # wait till events are process, not zeroing to early