summaryrefslogtreecommitdiff
path: root/sys/cam/cam_xpt.c
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2014-01-11 16:52:09 +0000
committerAlexander Motin <mav@FreeBSD.org>2014-01-11 16:52:09 +0000
commitd718926b6d61e60690ca681b443d792b5c61ec47 (patch)
tree29392fc165bd9b0ac6d85c3baf421482607e2cf5 /sys/cam/cam_xpt.c
parentac5863eed85f1ee80ac89ae6641f0efa803dec1f (diff)
downloadsrc-test2-d718926b6d61e60690ca681b443d792b5c61ec47.tar.gz
src-test2-d718926b6d61e60690ca681b443d792b5c61ec47.zip
Notes
Diffstat (limited to 'sys/cam/cam_xpt.c')
-rw-r--r--sys/cam/cam_xpt.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c
index d129869746dc..7edc708c2b9f 100644
--- a/sys/cam/cam_xpt.c
+++ b/sys/cam/cam_xpt.c
@@ -5188,8 +5188,7 @@ xpt_done_process(struct ccb_hdr *ccb_h)
if ((ccb_h->flags & CAM_DEV_QFRZDIS)
&& (ccb_h->status & CAM_DEV_QFRZN)) {
- xpt_release_devq(ccb_h->path, /*count*/1,
- /*run_queue*/FALSE);
+ xpt_release_devq(ccb_h->path, /*count*/1, /*run_queue*/TRUE);
ccb_h->status &= ~CAM_DEV_QFRZN;
}
@@ -5218,6 +5217,7 @@ xpt_done_process(struct ccb_hdr *ccb_h)
if (!device_is_queued(dev))
(void)xpt_schedule_devq(devq, dev);
+ xpt_run_devq(devq);
mtx_unlock(&devq->send_mtx);
if ((dev->flags & CAM_DEV_TAG_AFTER_COUNT) != 0) {
@@ -5247,10 +5247,6 @@ xpt_done_process(struct ccb_hdr *ccb_h)
(*ccb_h->cbfcnp)(ccb_h->path->periph, (union ccb *)ccb_h);
if (mtx != NULL)
mtx_unlock(mtx);
-
- mtx_lock(&devq->send_mtx);
- xpt_run_devq(devq);
- mtx_unlock(&devq->send_mtx);
}
void