| From 1b19bdf92d0a75ece0749fbf30ef043bf17b89cf Mon Sep 17 00:00:00 2001 |
| From: Long Li <longli@microsoft.com> |
| Date: Wed, 14 Dec 2016 18:46:02 -0800 |
| Subject: [PATCH] scsi: storvsc: properly handle SRB_ERROR when sense message |
| is present |
| |
| commit bba5dc332ec2d3a685cb4dae668c793f6a3713a3 upstream. |
| |
| When sense message is present on error, we should pass along to the upper |
| layer to decide how to deal with the error. |
| This patch fixes connectivity issues with Fiber Channel devices. |
| |
| Signed-off-by: Long Li <longli@microsoft.com> |
| Reviewed-by: K. Y. Srinivasan <kys@microsoft.com> |
| Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c |
| index c193629ac060..5d71a661ee67 100644 |
| --- a/drivers/scsi/storvsc_drv.c |
| +++ b/drivers/scsi/storvsc_drv.c |
| @@ -891,6 +891,13 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb, |
| switch (SRB_STATUS(vm_srb->srb_status)) { |
| case SRB_STATUS_ERROR: |
| /* |
| + * Let upper layer deal with error when |
| + * sense message is present. |
| + */ |
| + |
| + if (vm_srb->srb_status & SRB_STATUS_AUTOSENSE_VALID) |
| + break; |
| + /* |
| * If there is an error; offline the device since all |
| * error recovery strategies would have already been |
| * deployed on the host side. However, if the command |
| -- |
| 2.12.0 |
| |