diff options
author | mav <mav@FreeBSD.org> | 2010-02-04 18:56:38 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2010-02-04 18:56:38 +0000 |
commit | 744e8a4159d16282d0185d06a7a13509d894fa6a (patch) | |
tree | 55a09c02cc6e15019e54a07e300a6de1c9e5a736 /sys/cam | |
parent | 314d37171eeeaf59a5b31a334f60c81fe2e6745c (diff) | |
download | FreeBSD-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.c | 3 |
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 */ |