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: Roland Dreier <roland@purestorage.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
7fd29aa920
commit
233888644d
1 changed files with 3 additions and 3 deletions
|
@ -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)
|
||||||
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);
|
||||||
|
|
Loading…
Add table
Reference in a new issue