--- /dev/null
+From 88d5a0ee803b79b9444c2f6b4e0e12df05e580ed Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 13 Mar 2020 18:06:56 +0100
+Subject: scsi: target: iscsi: calling iscsit_stop_session() inside
+ iscsit_close_session() has no effect
+
+From: Maurizio Lombardi <mlombard@redhat.com>
+
+[ Upstream commit 626bac73371eed79e2afa2966de393da96cf925e ]
+
+iscsit_close_session() can only be called when nconn is zero (otherwise a
+kernel panic is triggered). If nconn is zero then iscsit_stop_session()
+does nothing and exits, so calling it makes no sense.
+
+We still need to call iscsit_check_session_usage_count() because this
+function will sleep if the session's refcount is not zero and we don't want
+to destroy the session structure if it's still being referenced.
+
+Link: https://lore.kernel.org/r/20200313170656.9716-4-mlombard@redhat.com
+Tested-by: Rahul Kundu <rahul.kundu@chelsio.com>
+Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/target/iscsi/iscsi_target.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
+index 09e55ea0bf5d5..9fc7e374a29b4 100644
+--- a/drivers/target/iscsi/iscsi_target.c
++++ b/drivers/target/iscsi/iscsi_target.c
+@@ -4368,8 +4368,7 @@ int iscsit_close_session(struct iscsi_session *sess)
+ * restart the timer and exit.
+ */
+ if (!in_interrupt()) {
+- if (iscsit_check_session_usage_count(sess) == 1)
+- iscsit_stop_session(sess, 1, 1);
++ iscsit_check_session_usage_count(sess);
+ } else {
+ if (iscsit_check_session_usage_count(sess) == 2) {
+ atomic_set(&sess->session_logout, 0);
+--
+2.20.1
+