From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2192EC3A5A0 for ; Sat, 18 Apr 2020 14:44:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E9BC022245 for ; Sat, 18 Apr 2020 14:44:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587221060; bh=wmutN43nL/kiGzXE/Vhy8WsrF7DsbBPsEgJA4G/c5Qk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=0xGez/rUiHupLZV2fRfveDWW3CQM47yC4UF22zldLO4QxtGZZ+Or6IkbrxavObCIF 0lQk7gmQ1S3cMpYyRH3zv7UaoCdUubInbiRj4faMVCy1UvGpVMjcZbOV5TwCiK+CdI 3fKsb6pw03CUWMUDu0ZPmMU3u0qTr3zgZr67x/+g= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726059AbgDROoT (ORCPT ); Sat, 18 Apr 2020 10:44:19 -0400 Received: from mail.kernel.org ([198.145.29.99]:55856 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726836AbgDROoQ (ORCPT ); Sat, 18 Apr 2020 10:44:16 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D863921BE5; Sat, 18 Apr 2020 14:44:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587221055; bh=wmutN43nL/kiGzXE/Vhy8WsrF7DsbBPsEgJA4G/c5Qk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HEnYIvs2tp1STrMXD/uszPuWeNCzDRa4UOsXFYbrVqd7u2at35bWvgAEGLXZ4zW24 ps+QxLjezSSHWO1X5REv4XzNk+SDZG4FlcVwRAiCygJfi21/GeombMG/U8o9peJzBF bxX3Kgf3E1UFHr9aS3xkOFXrDBMgS2Nj+GfqOHMw= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Wu Bo , Lee Duncan , "Martin K . Petersen" , Sasha Levin , open-iscsi@googlegroups.com, linux-scsi@vger.kernel.org Subject: [PATCH AUTOSEL 4.9 08/23] scsi: iscsi: Report unbind session event when the target has been removed Date: Sat, 18 Apr 2020 10:43:50 -0400 Message-Id: <20200418144405.10565-8-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200418144405.10565-1-sashal@kernel.org> References: <20200418144405.10565-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Wu Bo [ Upstream commit 13e60d3ba287d96eeaf1deaadba51f71578119a3 ] If the daemon is restarted or crashes while logging out of a session, the unbind session event sent by the kernel is not processed and is lost. When the daemon starts again, the session can't be unbound because the daemon is waiting for the event message. However, the kernel has already logged out and the event will not be resent. When iscsid restart is complete, logout session reports error: Logging out of session [sid: 6, target: iqn.xxxxx, portal: xx.xx.xx.xx,3260] iscsiadm: Could not logout of [sid: 6, target: iscsiadm -m node iqn.xxxxx, portal: xx.xx.xx.xx,3260]. iscsiadm: initiator reported error (9 - internal error) iscsiadm: Could not logout of all requested sessions Make sure the unbind event is emitted. [mkp: commit desc and applied by hand since patch was mangled] Link: https://lore.kernel.org/r/4eab1771-2cb3-8e79-b31c-923652340e99@huawei.com Reviewed-by: Lee Duncan Signed-off-by: Wu Bo Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/scsi_transport_iscsi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index fff9c4d0f7c80..42b97f1196232 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c @@ -2016,7 +2016,7 @@ static void __iscsi_unbind_session(struct work_struct *work) if (session->target_id == ISCSI_MAX_TARGET) { spin_unlock_irqrestore(&session->lock, flags); mutex_unlock(&ihost->mutex); - return; + goto unbind_session_exit; } target_id = session->target_id; @@ -2028,6 +2028,8 @@ static void __iscsi_unbind_session(struct work_struct *work) ida_simple_remove(&iscsi_sess_ida, target_id); scsi_remove_target(&session->dev); + +unbind_session_exit: iscsi_session_event(session, ISCSI_KEVENT_UNBIND_SESSION); ISCSI_DBG_TRANS_SESSION(session, "Completed target removal\n"); } -- 2.20.1