From patchwork Wed Dec 10 11:09:18 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Whitcroft X-Patchwork-Id: 419582 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id A5ADA1400F1; Wed, 10 Dec 2014 22:09:36 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1Xyf9B-0000jj-GS; Wed, 10 Dec 2014 11:09:33 +0000 Received: from mail-wg0-f42.google.com ([74.125.82.42]) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1Xyf90-0000iQ-KZ for kernel-team@lists.ubuntu.com; Wed, 10 Dec 2014 11:09:22 +0000 Received: by mail-wg0-f42.google.com with SMTP id z12so3293169wgg.1 for ; Wed, 10 Dec 2014 03:09:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=iuEU3JRLmuhfglLPyjL1MsatQxS/d/N495bnpKicK5o=; b=SQZGeem9FkfJrcUgxz7TFqqhQAqAeymHWBXZ3JRja971oXljFUtpnxbsc7MzZsuKX9 OMtlPnwadJ1ktBkQQwDO1KMDRbTZw2jbL4dL26bJlxk1Sqme1VXAnGtMZSW1SWs4Rnbg GJjXoh++XBNebKji69iqkM77Jq2MsvFcK60D/2P2CcqIo98muxM05iRhgwTASEYgzMTn +SRWqiyIFmej7SB4suVWsu0sADnIwMjBUTrxakNSwbevAa1l04HDqeOw7LFF3SUSZA7P 3riNTZBft+eKp3V2LjQhLTpt0TgtqVlznMIpcy4CTGTz6VgrOPtvcdJSUkg9j7ZfYgaZ JUZw== X-Gm-Message-State: ALoCoQmu1+WwepvRs9RDj8uh5ppIKfoKgchpGsLKhdhb4Dp4/spaqT4r+C2PeXDeJEnTSgy/Vvny X-Received: by 10.180.108.205 with SMTP id hm13mr12601432wib.5.1418209762487; Wed, 10 Dec 2014 03:09:22 -0800 (PST) Received: from localhost ([2001:470:6973:2:bdc0:e06e:3117:b37b]) by mx.google.com with ESMTPSA id b10sm5886357wiw.9.2014.12.10.03.09.21 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Wed, 10 Dec 2014 03:09:21 -0800 (PST) From: Andy Whitcroft To: kernel-team@lists.ubuntu.com Subject: [precise/trusty/utopic SRU] [1/1] drivers:scsi:storvsc: Fix a bug in handling ring buffer failures that may result in I/O freeze Date: Wed, 10 Dec 2014 11:09:18 +0000 Message-Id: <1418209758-25146-2-git-send-email-apw@canonical.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1418209758-25146-1-git-send-email-apw@canonical.com> References: <1418209758-25146-1-git-send-email-apw@canonical.com> Cc: Andy Whitcroft X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: kernel-team-bounces@lists.ubuntu.com From: Long Li When ring buffer returns an error indicating retry, storvsc may not return a proper error code to SCSI when bounce buffer is not used. This has introduced I/O freeze on RAID running atop storvsc devices. This patch fixes it by always returning a proper error code. Signed-off-by: Long Li Reviewed-by: K. Y. Srinivasan Signed-off-by: K. Y. Srinivasan Cc: stable@vger.kernel.org BugLink: http://bugs.launchpad.net/bugs/1400289 Signed-off-by: Andy Whitcroft --- drivers/scsi/storvsc_drv.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index a3b4ce9..d73b740 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -1379,13 +1379,12 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd) if (ret == -EAGAIN) { /* no more space */ - if (cmd_request->bounce_sgl_count) { + if (cmd_request->bounce_sgl_count) destroy_bounce_buffer(cmd_request->bounce_sgl, cmd_request->bounce_sgl_count); - ret = SCSI_MLQUEUE_DEVICE_BUSY; - goto queue_error; - } + ret = SCSI_MLQUEUE_DEVICE_BUSY; + goto queue_error; } return 0;