[SCSI] ipr: Properly handle IOA recovered errors
authorBrian King <brking@us.ibm.com>
Wed, 2 Aug 2006 19:57:51 +0000 (14:57 -0500)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Sun, 6 Aug 2006 20:50:19 +0000 (15:50 -0500)
The ipr driver currently translates adapter recovered errors
to DID_ERROR. This patch fixes this to translate these
errors to success instead.

Signed-off-by: Brian King <brking@us.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/ipr.c

index 7f2c5cf..55c0156 100644 (file)
@@ -4218,7 +4218,8 @@ static void ipr_erp_start(struct ipr_ioa_cfg *ioa_cfg,
        case IPR_IOASC_NR_INIT_CMD_REQUIRED:
                break;
        default:
-               scsi_cmd->result |= (DID_ERROR << 16);
+               if (IPR_IOASC_SENSE_KEY(ioasc) > RECOVERED_ERROR)
+                       scsi_cmd->result |= (DID_ERROR << 16);
                if (!ipr_is_vset_device(res) && !ipr_is_naca_model(res))
                        res->needs_sync_complete = 1;
                break;