]> git.hungrycats.org Git - linux/commitdiff
scsi: storvsc: properly handle SRB_ERROR when sense message is present
authorLong Li <longli@microsoft.com>
Thu, 15 Dec 2016 02:46:02 +0000 (18:46 -0800)
committerJiri Slaby <jslaby@suse.cz>
Mon, 13 Mar 2017 20:40:26 +0000 (21:40 +0100)
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>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/scsi/storvsc_drv.c

index c612a76dce49c0c4960c40bd8d0a9bb3f9303a92..d0d7b277a0c20fda379b2f4c8ef68ebfd241d580 100644 (file)
@@ -1010,6 +1010,13 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
 
        switch (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