109d98641SEnji Cooper#!/bin/sh 209d98641SEnji Cooper# $FreeBSD$ 309d98641SEnji Cooper 409d98641SEnji Coopername="$(mktemp -u mirror.XXXXXX)" 509d98641SEnji Cooperclass="mirror" 609d98641SEnji Cooperbase=`basename $0` 709d98641SEnji Cooper 809d98641SEnji Coopergmirror_test_cleanup() 909d98641SEnji Cooper{ 1009d98641SEnji Cooper [ -c /dev/$class/$name ] && gmirror destroy $name 1109d98641SEnji Cooper geom_test_cleanup 1209d98641SEnji Cooper} 1309d98641SEnji Coopertrap gmirror_test_cleanup ABRT EXIT INT TERM 1409d98641SEnji Cooper 1521274cadSMark Johnstonsyncwait() 1621274cadSMark Johnston{ 1721274cadSMark Johnston while $(gmirror status -s $name | grep -q SYNCHRONIZING); do 1821274cadSMark Johnston sleep 0.1; 1921274cadSMark Johnston done 2021274cadSMark Johnston} 2121274cadSMark Johnston 22*af7dcae0SConrad Meyerconsumerrefs() 23*af7dcae0SConrad Meyer{ 24*af7dcae0SConrad Meyer gclass=$1 25*af7dcae0SConrad Meyer geom=$2 26*af7dcae0SConrad Meyer 27*af7dcae0SConrad Meyer if [ $# -ne 2 ]; then 28*af7dcae0SConrad Meyer echo "Bad usage consumerrefs" >&2 29*af7dcae0SConrad Meyer exit 1 30*af7dcae0SConrad Meyer fi 31*af7dcae0SConrad Meyer 32*af7dcae0SConrad Meyer geom "${gclass}" list "${geom}" | \ 33*af7dcae0SConrad Meyer grep -A5 ^Consumers | \ 34*af7dcae0SConrad Meyer grep Mode | \ 35*af7dcae0SConrad Meyer cut -d: -f2 36*af7dcae0SConrad Meyer} 37*af7dcae0SConrad Meyer 38*af7dcae0SConrad Meyerdisconnectwait() 39*af7dcae0SConrad Meyer{ 40*af7dcae0SConrad Meyer gclass=$1 41*af7dcae0SConrad Meyer geom=$2 42*af7dcae0SConrad Meyer 43*af7dcae0SConrad Meyer if [ $# -ne 2 ]; then 44*af7dcae0SConrad Meyer echo "Bad usage disconnectwait" >&2 45*af7dcae0SConrad Meyer exit 1 46*af7dcae0SConrad Meyer fi 47*af7dcae0SConrad Meyer 48*af7dcae0SConrad Meyer while [ $(consumerrefs "$gclass" "$geom") != r0w0e0 ]; do 49*af7dcae0SConrad Meyer sleep 0.05 50*af7dcae0SConrad Meyer done 51*af7dcae0SConrad Meyer} 52*af7dcae0SConrad Meyer 5309d98641SEnji Cooper. `dirname $0`/../geom_subr.sh 54