From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756699AbcIFThK (ORCPT ); Tue, 6 Sep 2016 15:37:10 -0400 Received: from p3plsmtps2ded01.prod.phx3.secureserver.net ([208.109.80.58]:57506 "EHLO p3plsmtps2ded01.prod.phx3.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755902AbcIFThF (ORCPT ); Tue, 6 Sep 2016 15:37:05 -0400 x-originating-ip: 72.167.245.219 From: Long Li To: "K. Y. Srinivasan" , Haiyang Zhang , "James E.J. Bottomley" , "Martin K. Petersen" Cc: devel@linuxdriverproject.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, Long Li Subject: [PATCH 2/3] storvsc: properly handle SRB_ERROR when sense message is present Date: Tue, 6 Sep 2016 14:25:42 -0700 Message-Id: <1473197143-16760-3-git-send-email-longli@exchange.microsoft.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1473197143-16760-1-git-send-email-longli@exchange.microsoft.com> References: <1473197143-16760-1-git-send-email-longli@exchange.microsoft.com> X-CMAE-Envelope: MS4wfFPJqrJdwb7NZcbBFCWzs2RsqbY+NiEkbsrCuvh3ffqXBWcZOjudeAjKkjj9cvgqS5aNcM8BiZoG5M5GZo6aBEVy1Nsr9D+lBtK0cxzxI/4BHMXeJMKC efjsjxc+RMli8JZtRRPKFYHiEOukKpQCd9BpH8vMGdGa2h1kadFre/FhUFwvzFk4ZCG1WTHQNFpqQyj549hthkqjFht1eo4XM4G5z5IQJXz67cxl+mIjVr6C vP3RkiCSOvc4xloc4xiyJW1lOp5pW7Gw+8J1KNUESeHBVKJLNnqsIEk7Na2xmWmxa59pfxUFRxu0qmESwGoinJf1bWHKW8b+VWefh55pnLHwQK7/vCpDkOy8 AqTXgB8sx3jpJeGeZ/jLiwLg4P71wYqy+A/z/hsHl9emsw6Gml6pISrGANAt3MTRaG8IkenjPEi3GYjZFjwe6TUwqVCfWg== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Long Li 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. --- drivers/scsi/storvsc_drv.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index a8f3e4c..8328c87 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -890,6 +890,9 @@ 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 -- 1.8.5.6