[lvm-devel] master - tests: aux improve for mdadm support
Zdenek Kabelac
zkabelac at sourceware.org
Thu May 24 09:34:56 UTC 2018
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=76a45424a7b4d2e903bcb41b45b4f8cf131183ce
Commit: 76a45424a7b4d2e903bcb41b45b4f8cf131183ce
Parent: c46dbfb14e00beaa143871dbcefc23612a63f4e0
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Thu May 24 11:03:47 2018 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Thu May 24 11:03:47 2018 +0200
tests: aux improve for mdadm support
Correcting some symlink handling.
---
test/lib/aux.sh | 28 ++++++++++++++++++----------
1 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index f6206ce..bf766f2 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -755,11 +755,14 @@ prepare_md_dev() {
local coption="--chunk"
local maj
local mddev
+ local mddir="md/"
+ local mdname
+ local mddevdir
maj=$(mdadm --version 2>&1) || skip "mdadm tool is missing!"
cleanup_md_dev
- rm -f debug.log strace.log MD_DEV MD_DEV_PV MD_DEVICES
+ rm -f debug.log strace.log
case "$level" in
"1") coption="--bitmap-chunk" ;;
@@ -770,9 +773,11 @@ prepare_md_dev() {
# - newer mdadm _completely_ defers to udev to create the associated device node
maj=${maj##*- v}
maj=${maj%%.*}
- [ "$maj" -ge 3 ] && \
- mddev=/dev/md/md_lvm_test0 || \
- mddev=/dev/md_lvm_test0
+ [ "$maj" -ge 3 ] || mddir=""
+
+ mdname="md_lvm_test0"
+ mddev="/dev/${mddir}$mdname"
+ mddevdir="$DM_DEV_DIR/$mddir"
mdadm --create --metadata=1.0 "$mddev" --auto=md --level "$level" $with_bitmap "$coption"="$rchunk" --raid-devices="$rdevs" "${@:4}" || {
# Some older 'mdadm' version managed to open and close devices internaly
@@ -791,10 +796,11 @@ prepare_md_dev() {
# LVM/DM will see this device
case "$DM_DEV_DIR" in
- "/dev") readlink -f "$mddev" ;;
- *) cp -LR "$mddev" "$DM_DEV_DIR"
- echo "$DM_DEV_DIR/md_lvm_test0" ;;
- esac > MD_DEV_PV
+ "/dev") readlink -f "$mddev" > MD_DEV_PV ;;
+ *) mkdir -p "$mddevdir"
+ cp -LR "$mddev" "$mddevdir"
+ echo "${mddevdir}${mdname}" > MD_DEV_PV ;;
+ esac
echo "$mddev" > MD_DEV
notify_lvmetad "$(< MD_DEV_PV)"
printf "%s\n" "${@:4}" > MD_DEVICES
@@ -809,12 +815,14 @@ cleanup_md_dev() {
local IFS=$IFS_NL
local dev
local mddev
+ local mddev_pv
mddev=$(< MD_DEV)
+ mddev_pv=$(< MD_DEV_PV)
udev_wait
mdadm --stop "$mddev" || true
- test "$DM_DEV_DIR" != "/dev" && rm -f "$DM_DEV_DIR/$(basename "$mddev")"
- notify_lvmetad "$(< MD_DEV_PV)"
+ notify_lvmetad "$mddev_pv"
udev_wait # wait till events are process, not zeroing to early
+ test "$DM_DEV_DIR" != "/dev" && rm -rf "${mddev_pv%/*}"
for dev in $(< MD_DEVICES); do
mdadm --zero-superblock "$dev" || true
notify_lvmetad "$dev"
More information about the lvm-devel
mailing list