summaryrefslogtreecommitdiffstats
path: root/include/target
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@linux-iscsi.org>2012-03-10 23:36:21 +0100
committerNicholas Bellinger <nab@linux-iscsi.org>2012-03-10 23:42:19 +0100
commit337c060701fb3d27d9945bf7af7ba194ae2153a8 (patch)
tree7b2d50a7cc4b291a876e95c60388cf57a52d912a /include/target
parenttarget: Add se_node_acl->acl_kref for ->acl_free_comp usage (diff)
downloadlinux-337c060701fb3d27d9945bf7af7ba194ae2153a8.tar.xz
linux-337c060701fb3d27d9945bf7af7ba194ae2153a8.zip
target: Convert se_node_acl->acl_group removal to use ->acl_kref
This patch converts core_tpg_del_initiator_node_acl() shutdown from configfs context to use se_node_acl->acl_kref and ->acl_free_comp in order to wait for outstanding fabric callbacks to complete via transport_deregister_session() callbacks before waking ->acl_free_comp from the last ->acl_kref put. It also changes core_tpg_del_initiator_node_acl() to setup a local sess_list with target_get_session() + acl->acl_stop = 1 for active sessions that will be shutdown, and changes transport_deregister_session_configfs() to check for ->acl_stop usage. Cc: Roland Dreier <roland@purestorage.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Joern Engel <joern@logfs.org> Cc: Andy Grover <agrover@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'include/target')
-rw-r--r--include/target/target_core_base.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
index 2cda5638a4cc..469678d74bb5 100644
--- a/include/target/target_core_base.h
+++ b/include/target/target_core_base.h
@@ -620,6 +620,7 @@ struct se_node_acl {
char initiatorname[TRANSPORT_IQN_LEN];
/* Used to signal demo mode created ACL, disabled by default */
bool dynamic_node_acl;
+ bool acl_stop:1;
u32 queue_depth;
u32 acl_index;
u64 num_cmds;