aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2021-10-28 13:17:39 -0700
committerEryu Guan <guaneryu@gmail.com>2021-10-31 22:22:27 +0800
commit45d3cae176a592717de3de6d13ab3cc29e730722 (patch)
tree30cc3c6e7bc10b7aa9e27c03d5a3876b1551f6e4
parent5c4de305a3a75b7db982821330a51e775a3678c4 (diff)
downloadxfstests-dev-45d3cae176a592717de3de6d13ab3cc29e730722.tar.gz
dmflakey: fix environment-destroying mistakes in _cleanup_flakey
_cleanup_flakey can be called even when _init_flakey hasn't been called. For example, _require_flakey_with_error_writes does this. Unfortunately, the patch to add support for external logs and rt devices will "reset" the SCRATCH_LOGDEV/SCRATCH_RTDEV variables without noticing that _init_flakey hasn't been called yet. When this happens, those two variables will be set to the empty string, with the result that the rest of the test doesn't use those devices. To fix this, only reset SCRATCH_LOGDEV/RTDEV to the "NON_FLAKEY" value if we actually set one. Fixes: 9c1f3149 ("dmflakey: support external log and realtime devices") Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
-rw-r--r--common/dmflakey12
1 files changed, 8 insertions, 4 deletions
diff --git a/common/dmflakey b/common/dmflakey
index af4371a3ca..52da3b100f 100644
--- a/common/dmflakey
+++ b/common/dmflakey
@@ -84,11 +84,15 @@ _cleanup_flakey()
test -n "$NON_FLAKEY_LOGDEV" && _dmsetup_remove flakey-logtest
test -n "$NON_FLAKEY_RTDEV" && _dmsetup_remove flakey-rttest
- SCRATCH_LOGDEV="$NON_FLAKEY_LOGDEV"
- unset NON_FLAKEY_LOGDEV
+ if [ -n "$NON_FLAKEY_LOGDEV" ]; then
+ SCRATCH_LOGDEV="$NON_FLAKEY_LOGDEV"
+ unset NON_FLAKEY_LOGDEV
+ fi
- SCRATCH_RTDEV="$NON_FLAKEY_RTDEV"
- unset NON_FLAKEY_RTDEV
+ if [ -n "$NON_FLAKEY_RTDEV" ]; then
+ SCRATCH_RTDEV="$NON_FLAKEY_RTDEV"
+ unset NON_FLAKEY_RTDEV
+ fi
}
# _load_flakey_table <table> [lockfs]