Commit 23388864 authored by Roland Dreier's avatar Roland Dreier Committed by Nicholas Bellinger

target: Convert transport_deregister_session_configfs nacl_sess_lock to save irq state

This patch converts transport_deregister_session_configfs() to save/restore
spinlock IRQ state for struct se_node_acl->nacl_sess_lock access as tcm_qla2xxx
logic expects to call transport_deregister_session_configfs() code with
irq save already held for struct qla_hw_data.
Reported-by: default avatarRoland Dreier <roland@purestorage.com>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 7fd29aa9
...@@ -536,13 +536,13 @@ EXPORT_SYMBOL(transport_register_session); ...@@ -536,13 +536,13 @@ EXPORT_SYMBOL(transport_register_session);
void transport_deregister_session_configfs(struct se_session *se_sess) void transport_deregister_session_configfs(struct se_session *se_sess)
{ {
struct se_node_acl *se_nacl; struct se_node_acl *se_nacl;
unsigned long flags;
/* /*
* Used by struct se_node_acl's under ConfigFS to locate active struct se_session * Used by struct se_node_acl's under ConfigFS to locate active struct se_session
*/ */
se_nacl = se_sess->se_node_acl; se_nacl = se_sess->se_node_acl;
if ((se_nacl)) { if ((se_nacl)) {
spin_lock_irq(&se_nacl->nacl_sess_lock); spin_lock_irqsave(&se_nacl->nacl_sess_lock, flags);
list_del(&se_sess->sess_acl_list); list_del(&se_sess->sess_acl_list);
/* /*
* If the session list is empty, then clear the pointer. * If the session list is empty, then clear the pointer.
...@@ -556,7 +556,7 @@ void transport_deregister_session_configfs(struct se_session *se_sess) ...@@ -556,7 +556,7 @@ void transport_deregister_session_configfs(struct se_session *se_sess)
se_nacl->acl_sess_list.prev, se_nacl->acl_sess_list.prev,
struct se_session, sess_acl_list); struct se_session, sess_acl_list);
} }
spin_unlock_irq(&se_nacl->nacl_sess_lock); spin_unlock_irqrestore(&se_nacl->nacl_sess_lock, flags);
} }
} }
EXPORT_SYMBOL(transport_deregister_session_configfs); EXPORT_SYMBOL(transport_deregister_session_configfs);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment