From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> This patch allows transport_deregister_session() to be called again with a NULL se_node_acl pointer in order to handle fabric discovery sessions (from iscsi-target) where this pointer may not be set. This reverts the BUG_ON() + re-adds pointer checks from lio-core commit: commit 888ec69da603d32fcccacedcc662870e2d504925 Author: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> Date: Mon Feb 27 01:41:54 2012 -0800 target: Make dynamic NodeACL shutdown clear comp_nacl bit Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> --- drivers/target/target_core_transport.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 0db5d2c..e224096 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c @@ -394,10 +394,9 @@ void transport_deregister_session(struct se_session *se_sess) * struct se_node_acl if it had been previously dynamically generated. */ se_nacl = se_sess->se_node_acl; - BUG_ON(!se_nacl); spin_lock_irqsave(&se_tpg->acl_node_lock, flags); - if (se_nacl->dynamic_node_acl) { + if (se_nacl && se_nacl->dynamic_node_acl) { if (!se_tfo->tpg_check_demo_mode_cache(se_tpg)) { list_del(&se_nacl->acl_list); se_tpg->num_node_acls--; @@ -420,8 +419,9 @@ void transport_deregister_session(struct se_session *se_sess) * Awake sleeping ->acl_free_comp caller from configfs se_node_acl * removal context */ - if (comp_nacl) + if (se_nacl && comp_nacl == true) complete(&se_nacl->acl_free_comp); + } EXPORT_SYMBOL(transport_deregister_session); -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html