Received: by 10.223.164.202 with SMTP id h10csp1047461wrb; Tue, 7 Nov 2017 20:36:00 -0800 (PST) X-Google-Smtp-Source: ABhQp+Q3RjmpSSJgRai0Y2M3uvsxq1kNSgtlIYwlLxXEdFZZ8SfYlWoVuNVS4O0qjvFXrFYE+FRa X-Received: by 10.99.186.70 with SMTP id l6mr1021472pgu.86.1510115760602; Tue, 07 Nov 2017 20:36:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510115760; cv=none; d=google.com; s=arc-20160816; b=lOH7o7hGZ/Mvad24MixccA8NRL2RpcH9pf9L0uxuhJO8Ez4IffAUm4kavDaJVlIly2 4s8fJ86qjQtQCmbzQe0zTiPrRpRr1Ce/AVdhoLOKLB2JG55E8Ykklg8WjP2yayf3USG4 3DzonAvvoEhUSeZOtEoJtyJW7JWMBymCKf40gbAqtfSQZ9s1X3EGWERXDPaIA+cX1vB0 dxsxxLCEwZ4SHdclfnvWP40Rgjl+3t0rI1q5RNvsamDtn6DC+vAAlcVMN3e7cVIVWp/J G58stAubV5bG6VnBQ9d1j8n8zK5rL/V3KlSWJ/tnyDuCyT2mmM7I1qFQScQnx6hLpPQS hFKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=N6lBVrFBa2MrCZp1ITMJ5yQ5/i5hzsNIVh7KM7Yefl4=; b=LH1gBF1NwDgiKX10B2KLTw2n020T4+kHM9JFBoZrzFduQH0gevECTfUYhSRGrpO5zV tl2H1yuNGOEqolpOgHk/08+LNnvnR8ViVZecCHqUPGUhvpdC4CFwOZl6UmdL1sHkxA0A uw1ki9IwYUwJU1HA9vLGJsI38so6hq7Z6zdS4tgm8mVPoaulohZC7+gVcHLVAfy3ns9u 4AcVDO70xTLU4R9+wYhKcE62QgRGV6n+1yBPG7oJ6c/l8p6M8QoRQg9ii2wayULLNXI7 feAuJeWpNpZGdwOh3GoQWhQkBbrK+s1Iv7KJuEBbCfBFWhdva6LVvSgI3uiR9BZitNtg WOjA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p2si3030811pfd.273.2017.11.07.20.35.48; Tue, 07 Nov 2017 20:36:00 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752584AbdKHEbS (ORCPT + 91 others); Tue, 7 Nov 2017 23:31:18 -0500 Received: from mail.linux-iscsi.org ([67.23.28.174]:60309 "EHLO linux-iscsi.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752195AbdKHEbL (ORCPT ); Tue, 7 Nov 2017 23:31:11 -0500 Received: from linux-iscsi.org (localhost [127.0.0.1]) by linux-iscsi.org (Postfix) with ESMTP id 2B0D840009; Wed, 8 Nov 2017 04:32:00 +0000 (UTC) From: "Nicholas A. Bellinger" To: target-devel Cc: linux-scsi , lkml , Nicholas Bellinger , Mike Christie , Hannes Reinecke , "Bryant G. Ly" , Michael Cyr , Potnuri Bharat Teja , Sagi Grimberg Subject: [PATCH 3/6] target: Fix quiese during transport_write_pending_qf endless loop Date: Wed, 8 Nov 2017 04:31:49 +0000 Message-Id: <1510115512-15617-4-git-send-email-nab@linux-iscsi.org> X-Mailer: git-send-email 1.7.2.5 In-Reply-To: <1510115512-15617-1-git-send-email-nab@linux-iscsi.org> References: <1510115512-15617-1-git-send-email-nab@linux-iscsi.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Nicholas Bellinger This patch fixes a potential end-less loop during QUEUE_FULL, where cmd->se_tfo->write_pending() callback fails repeatedly but __transport_wait_for_tasks() has already been invoked to quiese the outstanding se_cmd descriptor. To address this bug, this patch adds a CMD_T_STOP|CMD_T_ABORTED check within transport_write_pending_qf() and invokes the existing se_cmd->t_transport_stop_comp to signal quiese completion back to __transport_wait_for_tasks(). Cc: Mike Christie Cc: Hannes Reinecke Cc: Bryant G. Ly Cc: Michael Cyr Cc: Potnuri Bharat Teja Cc: Sagi Grimberg Signed-off-by: Nicholas Bellinger --- drivers/target/target_core_transport.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index d02218c..0e89db8 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -2560,7 +2560,20 @@ void transport_kunmap_data_sg(struct se_cmd *cmd) static void transport_write_pending_qf(struct se_cmd *cmd) { + unsigned long flags; int ret; + bool stop; + + spin_lock_irqsave(&cmd->t_state_lock, flags); + stop = (cmd->transport_state & (CMD_T_STOP | CMD_T_ABORTED)); + spin_unlock_irqrestore(&cmd->t_state_lock, flags); + + if (stop) { + pr_debug("%s:%d CMD_T_STOP|CMD_T_ABORTED for ITT: 0x%08llx\n", + __func__, __LINE__, cmd->tag); + complete_all(&cmd->t_transport_stop_comp); + return; + } ret = cmd->se_tfo->write_pending(cmd); if (ret) { -- 1.9.1 From 1583487350974499374@xxx Wed Nov 08 08:53:36 +0000 2017 X-GM-THRID: 1583436348544152749 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread