• john fastabend's avatar
    [SCSI] libfc: incorrect scsi host byte codes returned to scsi-ml · ac17ea8d
    john fastabend authored
    The fcp packet recovery handler fc_fcp_recover() is called
    when errors occurr in a fcp session. Currently it is
    generically setting the status code to FC_CMD_RECOVERY for
    all error types. This results in DID_BUS_BUSY errors
    being returned to the scsi-ml.
    
    DID_BUS_BUSY errors indicate "BUS stayed busy through time
    out period" according to scsi.h. Many of the error reported
    by fc_rcp_recovery() are pkt errors. Here we update
    fc_fcp_recovery to use better host byte codes.
    
    With certain FAST FAIL flags set DID_BUS_BUSY and DID_ERROR
    will have different behaviors this was causing dm multipath
    to fail quickly in some cases where a retry would be a
    better action.
    Signed-off-by: default avatarJohn Fastabend <john.r.fastabend@intel.com>
    Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    ac17ea8d
fc_fcp.c 59.1 KB