Lines Matching refs:se_tpg
213 acl->se_tpg = tpg; in target_alloc_node_acl()
223 struct se_portal_group *tpg = acl->se_tpg; in target_add_node_acl()
343 struct se_portal_group *tpg = acl->se_tpg; in core_tpg_del_initiator_node_acl()
407 struct se_portal_group *tpg = acl->se_tpg; in core_tpg_set_initiator_node_queue_depth()
485 struct se_portal_group *se_tpg, in core_tpg_register() argument
490 if (!se_tpg) in core_tpg_register()
503 se_tpg->se_tpg_tfo = se_wwn->wwn_tf->tf_ops; in core_tpg_register()
505 if (!se_tpg->se_tpg_tfo) { in core_tpg_register()
510 INIT_HLIST_HEAD(&se_tpg->tpg_lun_hlist); in core_tpg_register()
511 se_tpg->proto_id = proto_id; in core_tpg_register()
512 se_tpg->se_tpg_wwn = se_wwn; in core_tpg_register()
513 atomic_set(&se_tpg->tpg_pr_ref_count, 0); in core_tpg_register()
514 INIT_LIST_HEAD(&se_tpg->acl_node_list); in core_tpg_register()
515 INIT_LIST_HEAD(&se_tpg->se_tpg_node); in core_tpg_register()
516 INIT_LIST_HEAD(&se_tpg->tpg_sess_list); in core_tpg_register()
517 spin_lock_init(&se_tpg->session_lock); in core_tpg_register()
518 mutex_init(&se_tpg->tpg_lun_mutex); in core_tpg_register()
519 mutex_init(&se_tpg->acl_node_mutex); in core_tpg_register()
521 if (se_tpg->proto_id >= 0) { in core_tpg_register()
522 se_tpg->tpg_virt_lun0 = core_tpg_alloc_lun(se_tpg, 0); in core_tpg_register()
523 if (IS_ERR(se_tpg->tpg_virt_lun0)) in core_tpg_register()
524 return PTR_ERR(se_tpg->tpg_virt_lun0); in core_tpg_register()
526 ret = core_tpg_add_lun(se_tpg, se_tpg->tpg_virt_lun0, in core_tpg_register()
529 kfree(se_tpg->tpg_virt_lun0); in core_tpg_register()
535 list_add_tail(&se_tpg->se_tpg_node, &tpg_list); in core_tpg_register()
539 "Proto: %d, Portal Tag: %u\n", se_tpg->se_tpg_tfo->get_fabric_name(), in core_tpg_register()
540 se_tpg->se_tpg_tfo->tpg_get_wwn(se_tpg) ? in core_tpg_register()
541 se_tpg->se_tpg_tfo->tpg_get_wwn(se_tpg) : NULL, in core_tpg_register()
542 se_tpg->proto_id, se_tpg->se_tpg_tfo->tpg_get_tag(se_tpg)); in core_tpg_register()
548 int core_tpg_deregister(struct se_portal_group *se_tpg) in core_tpg_deregister() argument
550 const struct target_core_fabric_ops *tfo = se_tpg->se_tpg_tfo; in core_tpg_deregister()
556 tfo->tpg_get_wwn(se_tpg) ? tfo->tpg_get_wwn(se_tpg) : NULL, in core_tpg_deregister()
557 se_tpg->proto_id, tfo->tpg_get_tag(se_tpg)); in core_tpg_deregister()
560 list_del(&se_tpg->se_tpg_node); in core_tpg_deregister()
563 while (atomic_read(&se_tpg->tpg_pr_ref_count) != 0) in core_tpg_deregister()
566 mutex_lock(&se_tpg->acl_node_mutex); in core_tpg_deregister()
567 list_splice_init(&se_tpg->acl_node_list, &node_list); in core_tpg_deregister()
568 mutex_unlock(&se_tpg->acl_node_mutex); in core_tpg_deregister()
576 se_tpg->num_node_acls--; in core_tpg_deregister()
579 core_free_device_list_for_node(nacl, se_tpg); in core_tpg_deregister()
583 if (se_tpg->proto_id >= 0) { in core_tpg_deregister()
584 core_tpg_remove_lun(se_tpg, se_tpg->tpg_virt_lun0); in core_tpg_deregister()
585 kfree_rcu(se_tpg->tpg_virt_lun0, rcu_head); in core_tpg_deregister()