summaryrefslogtreecommitdiffstats
path: root/sys/cam
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2010-02-04 18:56:38 +0000
committermav <mav@FreeBSD.org>2010-02-04 18:56:38 +0000
commit744e8a4159d16282d0185d06a7a13509d894fa6a (patch)
tree55a09c02cc6e15019e54a07e300a6de1c9e5a736 /sys/cam
parent314d37171eeeaf59a5b31a334f60c81fe2e6745c (diff)
downloadFreeBSD-src-744e8a4159d16282d0185d06a7a13509d894fa6a.zip
FreeBSD-src-744e8a4159d16282d0185d06a7a13509d894fa6a.tar.gz
On probe error, if restart requested, skip any retries and recovery.
Just restart probe from the beginning immediately.
Diffstat (limited to 'sys/cam')
-rw-r--r--sys/cam/ata/ata_xpt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/cam/ata/ata_xpt.c b/sys/cam/ata/ata_xpt.c
index bbd34bd..92ba027 100644
--- a/sys/cam/ata/ata_xpt.c
+++ b/sys/cam/ata/ata_xpt.c
@@ -693,7 +693,8 @@ probedone(struct cam_periph *periph, union ccb *done_ccb)
ident_buf = &path->device->ident_data;
if ((done_ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) {
-device_fail: if (cam_periph_error(done_ccb, 0, 0, NULL) == ERESTART) {
+device_fail: if ((!softc->restart) &&
+ cam_periph_error(done_ccb, 0, 0, NULL) == ERESTART) {
return;
} else if ((done_ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) {
/* Don't wedge the queue */
OpenPOWER on IntegriCloud