aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target/iscsi/iscsi_target_configfs.c
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2012-02-27 04:43:32 -0500
committerNicholas Bellinger <nab@linux-iscsi.org>2012-03-10 17:42:25 -0500
commit99367f01b8df2018ff3328ddf4111e701d34188d (patch)
tree5ef6e2ffe8b1d3ee8bfd995b80efcb4e6d02095d /drivers/target/iscsi/iscsi_target_configfs.c
parent337c060701fb3d27d9945bf7af7ba194ae2153a8 (diff)
iscsi-target: Convert to use target_put_session + sess_kref
This patch converts iscsi-target session code to use se_sess->sess_kref counting for iscsi session shutdown. The following cases include: *) last iscsit_close_connection() shutdown path to invoke close session *) iscsit_logout_post_handler_closesession() for explict logout *) iscsit_free_session() caller for explict shutdown It also moves iscsit_stop_session() call from lio_tpg_close_session() into lio_tpg_shutdown_session() TFO callbacks to invoke an explict shutdown, and also changes iscsi_check_for_session_reinstatement() login code to use se_sess->sess_kref. (v2: Make iscsit_handle_time2retain_timeout() use target_put_session) Cc: Andy Grover <agrover@redhat.com> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/iscsi/iscsi_target_configfs.c')
-rw-r--r--drivers/target/iscsi/iscsi_target_configfs.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/target/iscsi/iscsi_target_configfs.c b/drivers/target/iscsi/iscsi_target_configfs.c
index dcef63bf5f9d..1174f74f4fbc 100644
--- a/drivers/target/iscsi/iscsi_target_configfs.c
+++ b/drivers/target/iscsi/iscsi_target_configfs.c
@@ -1698,8 +1698,8 @@ static int lio_tpg_shutdown_session(struct se_session *se_sess)
1698 atomic_set(&sess->session_reinstatement, 1); 1698 atomic_set(&sess->session_reinstatement, 1);
1699 spin_unlock(&sess->conn_lock); 1699 spin_unlock(&sess->conn_lock);
1700 1700
1701 iscsit_inc_session_usage_count(sess);
1702 iscsit_stop_time2retain_timer(sess); 1701 iscsit_stop_time2retain_timer(sess);
1702 iscsit_stop_session(sess, 1, 1);
1703 1703
1704 return 1; 1704 return 1;
1705} 1705}
@@ -1715,8 +1715,6 @@ static void lio_tpg_close_session(struct se_session *se_sess)
1715 * If the iSCSI Session for the iSCSI Initiator Node exists, 1715 * If the iSCSI Session for the iSCSI Initiator Node exists,
1716 * forcefully shutdown the iSCSI NEXUS. 1716 * forcefully shutdown the iSCSI NEXUS.
1717 */ 1717 */
1718 iscsit_stop_session(sess, 1, 1);
1719 iscsit_dec_session_usage_count(sess);
1720 iscsit_close_session(sess); 1718 iscsit_close_session(sess);
1721} 1719}
1722 1720