From b4e22b8a3d9d5746380e8d400cd9134567ffe675 Mon Sep 17 00:00:00 2001 From: Long Li Date: Mon, 13 Feb 2017 06:05:19 -0700 Subject: [PATCH] scsi: storvsc: properly handle SRB_ERROR when sense message is present BugLink: http://bugs.launchpad.net/bugs/1663687 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 Reviewed-by: K. Y. Srinivasan Signed-off-by: K. Y. Srinivasan Cc: Signed-off-by: Martin K. Petersen (cherry picked from linux-next commit bba5dc332ec2d3a685cb4dae668c793f6a3713a3) Signed-off-by: Tim Gardner Acked-by: Stefan Bader Acked-by: Brad Figg Signed-off-by: Thadeu Lima de Souza Cascardo --- drivers/scsi/storvsc_drv.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index 094573daff56..f71705f55ac7 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -924,6 +924,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 -- 2.39.5