Wait for /dev/ggate* to appear after calling ggatel create
in :ggatel_{file,md}
The test assumed that `ggatel create` created a device on completion, but that's incorrect. This squashes the race by waiting for the device to appear, as `ggatel create` daemonizes before issuing an ioctl to geom_gate(4) if not called with `-v`. Discussed with: asomers MFC after: 1 week PR: 204616 Sponsored by: Dell EMC Isilon
This commit is contained in:
parent
d3a8234cef
commit
15b69ab272
@ -74,7 +74,11 @@ ggatel_file_body()
|
||||
|
||||
atf_check ggatel create -u $us work
|
||||
|
||||
dd if=src of=/dev/ggate${us} bs=1m count=1 conv=notrunc
|
||||
ggate_dev=/dev/ggate${us}
|
||||
|
||||
wait_for_ggate_device ${ggate_dev}
|
||||
|
||||
dd if=src of=${ggate_dev} bs=1m count=1 conv=notrunc
|
||||
|
||||
checksum src work
|
||||
}
|
||||
@ -104,7 +108,11 @@ ggatel_md_body()
|
||||
|
||||
atf_check ggatel create -u $us /dev/$work
|
||||
|
||||
dd if=/dev/$src of=/dev/ggate${us} bs=1m count=1 conv=notrunc
|
||||
ggate_dev=/dev/ggate${us}
|
||||
|
||||
wait_for_ggate_device ${ggate_dev}
|
||||
|
||||
dd if=/dev/$src of=${ggate_dev} bs=1m count=1 conv=notrunc
|
||||
|
||||
checksum /dev/$src /dev/$work
|
||||
}
|
||||
@ -191,3 +199,14 @@ common_cleanup()
|
||||
fi
|
||||
true
|
||||
}
|
||||
|
||||
# Bug 204616: ggatel(8) creates /dev/ggate* asynchronously if `ggatel create`
|
||||
# isn't called with `-v`.
|
||||
wait_for_ggate_device()
|
||||
{
|
||||
ggate_device=$1
|
||||
|
||||
while [ ! -c $ggate_device ]; do
|
||||
sleep 0.5
|
||||
done
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user