>From c7e5c1224267c6eac41863b78d0a907dc55944be Mon Sep 17 00:00:00 2001 From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> Date: Sat, 20 Dec 2008 02:05:54 -0800 Subject: [PATCH 2/8] [LIO-Target]: Properly release se_cmd_t w/ CHECK_CONDITION exception during iSCSI session recovery This patch fixes v3.0 breakage that was leaking a se_cmd_t w/ CHECK_CONDITION after hitting a NON_EXISTENT se_lun_t exception. This patch adds the special case in iscsi_release_commands_from_conn() and calls transport_release_cmd_to_pool() on the se_cmd_t in question. Signed-off-by: Nicholas A. Bellinger <nab@xxxxxxxxxxxxxxx> --- drivers/lio-core/iscsi_target.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/drivers/lio-core/iscsi_target.c b/drivers/lio-core/iscsi_target.c index d234fe0..d705871 100644 --- a/drivers/lio-core/iscsi_target.c +++ b/drivers/lio-core/iscsi_target.c @@ -4744,7 +4744,14 @@ static void iscsi_release_commands_from_conn (iscsi_conn_t *conn) spin_unlock_bh(&conn->cmd_lock); iscsi_increment_maxcmdsn(cmd, sess); - __iscsi_release_cmd_to_pool(cmd, sess); + /* + * Special case for transport_get_lun_for_cmd() failing + * from iscsi_get_lun_for_cmd() in iscsi_handle_scsi_cmd(). + */ + if (SE_CMD(cmd)) + transport_release_cmd_to_pool(SE_CMD(cmd)); + else + __iscsi_release_cmd_to_pool(cmd, sess); spin_lock_bh(&conn->cmd_lock); cmd = cmd_next; -- 1.5.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html