HomeFreeBSD

ocs_fc: When commands complete with an error, freeze the device queue.

Description

ocs_fc: When commands complete with an error, freeze the device queue.

Proper error recovery depends on freezing the device queue when an
error occurs, so we can recover from an error before sending
additional commands.

The ocs_fc(4) driver was not freezing the device queue for most
SCSI errors, and that broke error recovery.

sys/dev/ocs_fc/ocs_cam.c:
In ocs_scsi_initiator_io_cb(), freeze the device queue if

we're passing back status other than CAM_REQ_CMP.

Submitted by: ken@kdm.org
Reviewed by: mav, ken

(cherry picked from commit d063d1bc928165e7798df5ec1c424794a1ec41e9)

Details

Provenance
Ram Kishore Vegesna <ram@FreeBSD.org>Authored on Sep 24 2021, 9:32 AM
Parents
rGd55873846cfc: ocs_fc: Fix CAM status reporting in ocs_fc(4) when no data is returned.
Branches
Unknown
Tags
Unknown

Event Timeline

Ram Kishore Vegesna <ram@FreeBSD.org> committed rG668615aea2c9: ocs_fc: When commands complete with an error, freeze the device queue. (authored by Ram Kishore Vegesna <ram@FreeBSD.org>).Dec 17 2021, 9:57 AM