Patch "scsi: iscsi: Force immediate failure during shutdown" has been added to the 5.13-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: iscsi: Force immediate failure during shutdown

to the 5.13-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-iscsi-force-immediate-failure-during-shutdown.patch
and it can be found in the queue-5.13 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 1cb12e22cc5ec6adf32f699d65a2a2acdd0a4b16
Author: Mike Christie <michael.christie@xxxxxxxxxx>
Date:   Tue May 25 13:17:57 2021 -0500

    scsi: iscsi: Force immediate failure during shutdown
    
    [ Upstream commit 06c203a5566beecebb1f8838d026de8a61c8df71 ]
    
    If the system is not up, we can just fail immediately since iscsid is not
    going to ever answer our netlink events. We are already setting the
    recovery_tmo to 0, but by passing stop_conn STOP_CONN_TERM we never will
    block the session and start the recovery timer, because for that flag
    userspace will do the unbind and destroy events which would remove the
    devices and wake up and kill the eh.
    
    Since the conn is dead and the system is going dowm this just has us use
    STOP_CONN_RECOVER with recovery_tmo=0 so we fail immediately. However, if
    the user has set the recovery_tmo=-1 we let the system hang like they
    requested since they might have used that setting for specific reasons
    (one known reason is for buggy cluster software).
    
    Link: https://lore.kernel.org/r/20210525181821.7617-5-michael.christie@xxxxxxxxxx
    Signed-off-by: Mike Christie <michael.christie@xxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index 82491343e94a..d134156d67f0 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -2513,11 +2513,17 @@ static void stop_conn_work_fn(struct work_struct *work)
 		session = iscsi_session_lookup(sid);
 		if (session) {
 			if (system_state != SYSTEM_RUNNING) {
-				session->recovery_tmo = 0;
-				iscsi_if_stop_conn(conn, STOP_CONN_TERM);
-			} else {
-				iscsi_if_stop_conn(conn, STOP_CONN_RECOVER);
+				/*
+				 * If the user has set up for the session to
+				 * never timeout then hang like they wanted.
+				 * For all other cases fail right away since
+				 * userspace is not going to relogin.
+				 */
+				if (session->recovery_tmo > 0)
+					session->recovery_tmo = 0;
 			}
+
+			iscsi_if_stop_conn(conn, STOP_CONN_RECOVER);
 		}
 
 		list_del_init(&conn->conn_list_err);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux