Lines Matching refs:acl
59 struct se_node_acl *acl; in __core_tpg_get_initiator_node_acl() local
61 list_for_each_entry(acl, &tpg->acl_node_list, acl_list) { in __core_tpg_get_initiator_node_acl()
62 if (!strcmp(acl->initiatorname, initiatorname)) in __core_tpg_get_initiator_node_acl()
63 return acl; in __core_tpg_get_initiator_node_acl()
77 struct se_node_acl *acl; in core_tpg_get_initiator_node_acl() local
80 acl = __core_tpg_get_initiator_node_acl(tpg, initiatorname); in core_tpg_get_initiator_node_acl()
83 return acl; in core_tpg_get_initiator_node_acl()
108 struct se_node_acl *acl, in core_tpg_add_node_to_devs() argument
148 lun_access, acl, tpg); in core_tpg_add_node_to_devs()
154 core_scsi3_check_aptpl_registration(dev, tpg, lun, acl, in core_tpg_add_node_to_devs()
166 struct se_node_acl *acl) in core_set_queue_depth_for_node() argument
168 if (!acl->queue_depth) { in core_set_queue_depth_for_node()
171 acl->initiatorname); in core_set_queue_depth_for_node()
172 acl->queue_depth = 1; in core_set_queue_depth_for_node()
181 struct se_node_acl *acl; in target_alloc_node_acl() local
183 acl = kzalloc(max(sizeof(*acl), tpg->se_tpg_tfo->node_acl_size), in target_alloc_node_acl()
185 if (!acl) in target_alloc_node_acl()
188 INIT_LIST_HEAD(&acl->acl_list); in target_alloc_node_acl()
189 INIT_LIST_HEAD(&acl->acl_sess_list); in target_alloc_node_acl()
190 INIT_HLIST_HEAD(&acl->lun_entry_hlist); in target_alloc_node_acl()
191 kref_init(&acl->acl_kref); in target_alloc_node_acl()
192 init_completion(&acl->acl_free_comp); in target_alloc_node_acl()
193 spin_lock_init(&acl->nacl_sess_lock); in target_alloc_node_acl()
194 mutex_init(&acl->lun_entry_mutex); in target_alloc_node_acl()
195 atomic_set(&acl->acl_pr_ref_count, 0); in target_alloc_node_acl()
197 acl->queue_depth = tpg->se_tpg_tfo->tpg_get_default_depth(tpg); in target_alloc_node_acl()
199 acl->queue_depth = 1; in target_alloc_node_acl()
200 snprintf(acl->initiatorname, TRANSPORT_IQN_LEN, "%s", initiatorname); in target_alloc_node_acl()
201 acl->se_tpg = tpg; in target_alloc_node_acl()
202 acl->acl_index = scsi_get_new_index(SCSI_AUTH_INTR_INDEX); in target_alloc_node_acl()
204 tpg->se_tpg_tfo->set_default_node_attributes(acl); in target_alloc_node_acl()
206 if (core_set_queue_depth_for_node(tpg, acl) < 0) in target_alloc_node_acl()
209 return acl; in target_alloc_node_acl()
212 kfree(acl); in target_alloc_node_acl()
216 static void target_add_node_acl(struct se_node_acl *acl) in target_add_node_acl() argument
218 struct se_portal_group *tpg = acl->se_tpg; in target_add_node_acl()
221 list_add_tail(&acl->acl_list, &tpg->acl_node_list); in target_add_node_acl()
229 acl->dynamic_node_acl ? "DYNAMIC" : "", in target_add_node_acl()
230 acl->queue_depth, in target_add_node_acl()
232 acl->initiatorname); in target_add_node_acl()
239 struct se_node_acl *acl; in core_tpg_check_initiator_node_acl() local
241 acl = core_tpg_get_initiator_node_acl(tpg, initiatorname); in core_tpg_check_initiator_node_acl()
242 if (acl) in core_tpg_check_initiator_node_acl()
243 return acl; in core_tpg_check_initiator_node_acl()
248 acl = target_alloc_node_acl(tpg, initiatorname); in core_tpg_check_initiator_node_acl()
249 if (!acl) in core_tpg_check_initiator_node_acl()
251 acl->dynamic_node_acl = 1; in core_tpg_check_initiator_node_acl()
260 core_tpg_add_node_to_devs(acl, tpg, NULL); in core_tpg_check_initiator_node_acl()
262 target_add_node_acl(acl); in core_tpg_check_initiator_node_acl()
263 return acl; in core_tpg_check_initiator_node_acl()
277 struct se_node_acl *acl; in core_tpg_add_initiator_node_acl() local
280 acl = __core_tpg_get_initiator_node_acl(tpg, initiatorname); in core_tpg_add_initiator_node_acl()
281 if (acl) { in core_tpg_add_initiator_node_acl()
282 if (acl->dynamic_node_acl) { in core_tpg_add_initiator_node_acl()
283 acl->dynamic_node_acl = 0; in core_tpg_add_initiator_node_acl()
288 return acl; in core_tpg_add_initiator_node_acl()
300 acl = target_alloc_node_acl(tpg, initiatorname); in core_tpg_add_initiator_node_acl()
301 if (!acl) in core_tpg_add_initiator_node_acl()
304 target_add_node_acl(acl); in core_tpg_add_initiator_node_acl()
305 return acl; in core_tpg_add_initiator_node_acl()
308 void core_tpg_del_initiator_node_acl(struct se_node_acl *acl) in core_tpg_del_initiator_node_acl() argument
310 struct se_portal_group *tpg = acl->se_tpg; in core_tpg_del_initiator_node_acl()
317 if (acl->dynamic_node_acl) { in core_tpg_del_initiator_node_acl()
318 acl->dynamic_node_acl = 0; in core_tpg_del_initiator_node_acl()
320 list_del(&acl->acl_list); in core_tpg_del_initiator_node_acl()
324 spin_lock_irqsave(&acl->nacl_sess_lock, flags); in core_tpg_del_initiator_node_acl()
325 acl->acl_stop = 1; in core_tpg_del_initiator_node_acl()
327 list_for_each_entry_safe(sess, sess_tmp, &acl->acl_sess_list, in core_tpg_del_initiator_node_acl()
335 spin_unlock_irqrestore(&acl->nacl_sess_lock, flags); in core_tpg_del_initiator_node_acl()
346 target_put_nacl(acl); in core_tpg_del_initiator_node_acl()
351 wait_for_completion(&acl->acl_free_comp); in core_tpg_del_initiator_node_acl()
353 core_tpg_wait_for_nacl_pr_ref(acl); in core_tpg_del_initiator_node_acl()
354 core_free_device_list_for_node(acl, tpg); in core_tpg_del_initiator_node_acl()
358 tpg->se_tpg_tfo->tpg_get_tag(tpg), acl->queue_depth, in core_tpg_del_initiator_node_acl()
359 tpg->se_tpg_tfo->get_fabric_name(), acl->initiatorname); in core_tpg_del_initiator_node_acl()
361 kfree(acl); in core_tpg_del_initiator_node_acl()
375 struct se_node_acl *acl; in core_tpg_set_initiator_node_queue_depth() local
380 acl = __core_tpg_get_initiator_node_acl(tpg, initiatorname); in core_tpg_set_initiator_node_queue_depth()
381 if (!acl) { in core_tpg_set_initiator_node_queue_depth()
389 if (acl->dynamic_node_acl) { in core_tpg_set_initiator_node_queue_depth()
390 acl->dynamic_node_acl = 0; in core_tpg_set_initiator_node_queue_depth()
397 if (sess->se_node_acl != acl) in core_tpg_set_initiator_node_queue_depth()
411 acl->dynamic_node_acl = 1; in core_tpg_set_initiator_node_queue_depth()
434 acl->queue_depth = queue_depth; in core_tpg_set_initiator_node_queue_depth()
436 if (core_set_queue_depth_for_node(tpg, acl) < 0) { in core_tpg_set_initiator_node_queue_depth()
449 acl->dynamic_node_acl = 1; in core_tpg_set_initiator_node_queue_depth()
468 acl->dynamic_node_acl = 1; in core_tpg_set_initiator_node_queue_depth()
483 struct se_node_acl *acl, in core_tpg_set_initiator_node_tag() argument
490 acl->acl_tag[0] = '\0'; in core_tpg_set_initiator_node_tag()
494 return snprintf(acl->acl_tag, MAX_ACL_TAG_SIZE, "%s", new_tag); in core_tpg_set_initiator_node_tag()