* Brian King ([email protected]) wrote:
> 
> This fixes an issue seen with devices getting marked offline
> in a scenario where a VIOS was getting rebooted while a
> client VFC adapter is in SCSI EH and prevents unnecessary
> EH escalation in some scenarios.
> 
> Signed-off-by: Brian King <[email protected]>
Acked-by: Robert Jennings <[email protected]>
> ---
> 
>  drivers/scsi/ibmvscsi/ibmvfc.c |   15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff -puN drivers/scsi/ibmvscsi/ibmvfc.c~ibmvfc_abort_during_reset 
> drivers/scsi/ibmvscsi/ibmvfc.c
> --- linux/drivers/scsi/ibmvscsi/ibmvfc.c~ibmvfc_abort_during_reset    
> 2013-08-06 15:10:04.000000000 -0500
> +++ linux-bjking1/drivers/scsi/ibmvscsi/ibmvfc.c      2013-08-06 
> 15:10:04.000000000 -0500
> @@ -2208,7 +2208,10 @@ static int ibmvfc_cancel_all(struct scsi
> 
>       if (rsp_rc != 0) {
>               sdev_printk(KERN_ERR, sdev, "Failed to send cancel event. 
> rc=%d\n", rsp_rc);
> -             return -EIO;
> +             /* If failure is received, the host adapter is most likely going
> +              through reset, return success so the caller will wait for the 
> command
> +              being cancelled to get returned */
> +             return 0;
>       }
> 
>       sdev_printk(KERN_INFO, sdev, "Cancelling outstanding commands.\n");
> @@ -2221,7 +2224,15 @@ static int ibmvfc_cancel_all(struct scsi
> 
>       if (status != IBMVFC_MAD_SUCCESS) {
>               sdev_printk(KERN_WARNING, sdev, "Cancel failed with rc=%x\n", 
> status);
> -             return -EIO;
> +             switch (status) {
> +             case IBMVFC_MAD_DRIVER_FAILED:
> +             case IBMVFC_MAD_CRQ_ERROR:
> +                     /* Host adapter most likely going through reset, return 
> success to
> +                      the caller will wait for the command being cancelled 
> to get returned */
> +                     return 0;
> +             default:
> +                     return -EIO;
> +             };
>       }
> 
>       sdev_printk(KERN_INFO, sdev, "Successfully cancelled outstanding 
> commands\n");
> _

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to