aboutsummaryrefslogtreecommitdiffstats
path: root/tests/zfs-tests
diff options
context:
space:
mode:
authorRyan Moeller <[email protected]>2020-08-24 11:50:15 -0400
committerGitHub <[email protected]>2020-08-24 08:50:15 -0700
commitb0e75805eefcb09186010afc8d27748e60f80329 (patch)
tree858a4dd90737497386fdec304a7b9a0588d54508 /tests/zfs-tests
parent07ce8961e52bc9c4f9f978357551c507239a7410 (diff)
ZTS: Improve block_device_wait on FreeBSD
FreeBSD doesn't have an equivalent to udevadm settle, so we have been resorting to a three second sleep to wait for device changes to take effect. This is far from ideal. We are mainly waiting for volmode=geom zvols to appear in /dev, so as a hack, reading the geom config will have the desired effect of quiescing the geom state. Reviewed-by: Alexander Motin <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #10768
Diffstat (limited to 'tests/zfs-tests')
-rw-r--r--tests/zfs-tests/include/blkdev.shlib4
1 files changed, 3 insertions, 1 deletions
diff --git a/tests/zfs-tests/include/blkdev.shlib b/tests/zfs-tests/include/blkdev.shlib
index 28f439fca..b34f2c04d 100644
--- a/tests/zfs-tests/include/blkdev.shlib
+++ b/tests/zfs-tests/include/blkdev.shlib
@@ -81,7 +81,9 @@ function block_device_wait
log_note udevadm settle time too long: $elapsed
elif is_freebsd; then
if [[ ${#@} -eq 0 ]]; then
- sleep 3
+ # Do something that has to go through the geom event
+ # queue to complete.
+ sysctl kern.geom.conftxt >/dev/null
return
fi
fi