fix another race. vscsi_cmd checked if the adapter was running at
authordlg <dlg@openbsd.org>
Sat, 24 Jul 2010 11:53:44 +0000 (11:53 +0000)
committerdlg <dlg@openbsd.org>
Sat, 24 Jul 2010 11:53:44 +0000 (11:53 +0000)
commitd2628efdb901643c2fab34ba834a6bdb72308965
tree9d2a44c12a7c9b3a830990ef9726c0b2289913fb
parentde0981a89423869e95b7601ea09cfa393a371218
fix another race. vscsi_cmd checked if the adapter was running at
the start and queued the command for processing by userland later.
the adapter could stop running between the check and the queue.
this merges the state and queue mutexes and combines the check and
queue ops in vscsi_cmd into the same critical section.

tweaked by and ok matthew@
sys/dev/vscsi.c