Lines Matching refs:tpg
56 struct se_portal_group *tpg, in __core_tpg_get_initiator_node_acl() argument
61 list_for_each_entry(acl, &tpg->acl_node_list, acl_list) { in __core_tpg_get_initiator_node_acl()
74 struct se_portal_group *tpg, in core_tpg_get_initiator_node_acl() argument
79 mutex_lock(&tpg->acl_node_mutex); in core_tpg_get_initiator_node_acl()
80 acl = __core_tpg_get_initiator_node_acl(tpg, initiatorname); in core_tpg_get_initiator_node_acl()
81 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_get_initiator_node_acl()
109 struct se_portal_group *tpg, in core_tpg_add_node_to_devs() argument
116 mutex_lock(&tpg->tpg_lun_mutex); in core_tpg_add_node_to_devs()
117 hlist_for_each_entry_rcu(lun, &tpg->tpg_lun_hlist, link) { in core_tpg_add_node_to_devs()
122 lockdep_is_held(&tpg->tpg_lun_mutex)); in core_tpg_add_node_to_devs()
127 if (!tpg->se_tpg_tfo->tpg_check_demo_mode_write_protect(tpg)) { in core_tpg_add_node_to_devs()
142 tpg->se_tpg_tfo->get_fabric_name(), in core_tpg_add_node_to_devs()
143 tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun, in core_tpg_add_node_to_devs()
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()
157 mutex_unlock(&tpg->tpg_lun_mutex); in core_tpg_add_node_to_devs()
165 struct se_portal_group *tpg, in core_set_queue_depth_for_node() argument
170 "defaulting to 1.\n", tpg->se_tpg_tfo->get_fabric_name(), in core_set_queue_depth_for_node()
178 static struct se_node_acl *target_alloc_node_acl(struct se_portal_group *tpg, in target_alloc_node_acl() argument
183 acl = kzalloc(max(sizeof(*acl), tpg->se_tpg_tfo->node_acl_size), in target_alloc_node_acl()
196 if (tpg->se_tpg_tfo->tpg_get_default_depth) in target_alloc_node_acl()
197 acl->queue_depth = tpg->se_tpg_tfo->tpg_get_default_depth(tpg); in target_alloc_node_acl()
201 acl->se_tpg = tpg; 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()
218 struct se_portal_group *tpg = acl->se_tpg; in target_add_node_acl() local
220 mutex_lock(&tpg->acl_node_mutex); in target_add_node_acl()
221 list_add_tail(&acl->acl_list, &tpg->acl_node_list); in target_add_node_acl()
222 tpg->num_node_acls++; in target_add_node_acl()
223 mutex_unlock(&tpg->acl_node_mutex); in target_add_node_acl()
227 tpg->se_tpg_tfo->get_fabric_name(), in target_add_node_acl()
228 tpg->se_tpg_tfo->tpg_get_tag(tpg), in target_add_node_acl()
231 tpg->se_tpg_tfo->get_fabric_name(), in target_add_node_acl()
236 struct se_portal_group *tpg, in core_tpg_check_initiator_node_acl() argument
241 acl = core_tpg_get_initiator_node_acl(tpg, initiatorname); in core_tpg_check_initiator_node_acl()
245 if (!tpg->se_tpg_tfo->tpg_check_demo_mode(tpg)) in core_tpg_check_initiator_node_acl()
248 acl = target_alloc_node_acl(tpg, initiatorname); in core_tpg_check_initiator_node_acl()
258 if ((tpg->se_tpg_tfo->tpg_check_demo_mode_login_only == NULL) || in core_tpg_check_initiator_node_acl()
259 (tpg->se_tpg_tfo->tpg_check_demo_mode_login_only(tpg) != 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()
274 struct se_portal_group *tpg, in core_tpg_add_initiator_node_acl() argument
279 mutex_lock(&tpg->acl_node_mutex); in core_tpg_add_initiator_node_acl()
280 acl = __core_tpg_get_initiator_node_acl(tpg, initiatorname); in core_tpg_add_initiator_node_acl()
285 " for %s\n", tpg->se_tpg_tfo->get_fabric_name(), in core_tpg_add_initiator_node_acl()
286 tpg->se_tpg_tfo->tpg_get_tag(tpg), initiatorname); in core_tpg_add_initiator_node_acl()
287 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_add_initiator_node_acl()
293 " request.\n", tpg->se_tpg_tfo->get_fabric_name(), in core_tpg_add_initiator_node_acl()
294 initiatorname, tpg->se_tpg_tfo->tpg_get_tag(tpg)); in core_tpg_add_initiator_node_acl()
295 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_add_initiator_node_acl()
298 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_add_initiator_node_acl()
300 acl = target_alloc_node_acl(tpg, initiatorname); in core_tpg_add_initiator_node_acl()
310 struct se_portal_group *tpg = acl->se_tpg; in core_tpg_del_initiator_node_acl() local
316 mutex_lock(&tpg->acl_node_mutex); in core_tpg_del_initiator_node_acl()
321 tpg->num_node_acls--; in core_tpg_del_initiator_node_acl()
322 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_del_initiator_node_acl()
340 rc = tpg->se_tpg_tfo->shutdown_session(sess); in core_tpg_del_initiator_node_acl()
354 core_free_device_list_for_node(acl, tpg); in core_tpg_del_initiator_node_acl()
357 " Initiator Node: %s\n", tpg->se_tpg_tfo->get_fabric_name(), 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()
369 struct se_portal_group *tpg, in core_tpg_set_initiator_node_queue_depth() argument
379 mutex_lock(&tpg->acl_node_mutex); in core_tpg_set_initiator_node_queue_depth()
380 acl = __core_tpg_get_initiator_node_acl(tpg, initiatorname); in core_tpg_set_initiator_node_queue_depth()
384 " request.\n", tpg->se_tpg_tfo->get_fabric_name(), in core_tpg_set_initiator_node_queue_depth()
385 initiatorname, tpg->se_tpg_tfo->tpg_get_tag(tpg)); in core_tpg_set_initiator_node_queue_depth()
386 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_set_initiator_node_queue_depth()
393 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_set_initiator_node_queue_depth()
395 spin_lock_irqsave(&tpg->session_lock, flags); in core_tpg_set_initiator_node_queue_depth()
396 list_for_each_entry(sess, &tpg->tpg_sess_list, sess_list) { in core_tpg_set_initiator_node_queue_depth()
406 tpg->se_tpg_tfo->get_fabric_name(), initiatorname); in core_tpg_set_initiator_node_queue_depth()
407 spin_unlock_irqrestore(&tpg->session_lock, flags); in core_tpg_set_initiator_node_queue_depth()
409 mutex_lock(&tpg->acl_node_mutex); in core_tpg_set_initiator_node_queue_depth()
412 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_set_initiator_node_queue_depth()
418 if (!tpg->se_tpg_tfo->shutdown_session(sess)) 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()
437 spin_unlock_irqrestore(&tpg->session_lock, flags); in core_tpg_set_initiator_node_queue_depth()
445 tpg->se_tpg_tfo->close_session(init_sess); in core_tpg_set_initiator_node_queue_depth()
447 mutex_lock(&tpg->acl_node_mutex); in core_tpg_set_initiator_node_queue_depth()
450 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_set_initiator_node_queue_depth()
453 spin_unlock_irqrestore(&tpg->session_lock, flags); in core_tpg_set_initiator_node_queue_depth()
459 tpg->se_tpg_tfo->close_session(init_sess); in core_tpg_set_initiator_node_queue_depth()
463 initiatorname, tpg->se_tpg_tfo->get_fabric_name(), in core_tpg_set_initiator_node_queue_depth()
464 tpg->se_tpg_tfo->tpg_get_tag(tpg)); in core_tpg_set_initiator_node_queue_depth()
466 mutex_lock(&tpg->acl_node_mutex); in core_tpg_set_initiator_node_queue_depth()
469 mutex_unlock(&tpg->acl_node_mutex); in core_tpg_set_initiator_node_queue_depth()
482 struct se_portal_group *tpg, in core_tpg_set_initiator_node_tag() argument
615 struct se_portal_group *tpg, in core_tpg_alloc_lun() argument
636 lun->lun_tpg = tpg; in core_tpg_alloc_lun()
642 struct se_portal_group *tpg, in core_tpg_add_lun() argument
662 mutex_lock(&tpg->tpg_lun_mutex); in core_tpg_add_lun()
676 hlist_add_head_rcu(&lun->link, &tpg->tpg_lun_hlist); in core_tpg_add_lun()
677 mutex_unlock(&tpg->tpg_lun_mutex); in core_tpg_add_lun()
688 struct se_portal_group *tpg, in core_tpg_remove_lun() argument
697 core_clear_lun_from_tpg(lun, tpg); in core_tpg_remove_lun()
706 mutex_lock(&tpg->tpg_lun_mutex); in core_tpg_remove_lun()
718 mutex_unlock(&tpg->tpg_lun_mutex); in core_tpg_remove_lun()