Lines Matching refs:tpg

296 	struct vhost_scsi_tpg *tpg = container_of(se_tpg,  in vhost_scsi_get_fabric_wwn()  local
298 struct vhost_scsi_tport *tport = tpg->tport; in vhost_scsi_get_fabric_wwn()
305 struct vhost_scsi_tpg *tpg = container_of(se_tpg, in vhost_scsi_get_tpgt() local
307 return tpg->tport_tpgt; in vhost_scsi_get_tpgt()
312 struct vhost_scsi_tpg *tpg = container_of(se_tpg, in vhost_scsi_check_prot_fabric_only() local
315 return tpg->tv_fabric_prot_type; in vhost_scsi_check_prot_fabric_only()
569 vhost_scsi_get_tag(struct vhost_virtqueue *vq, struct vhost_scsi_tpg *tpg, in vhost_scsi_get_tag() argument
580 tv_nexus = tpg->tpg_nexus; in vhost_scsi_get_tag()
893 struct vhost_scsi_tpg **vs_tpg, *tpg; in vhost_scsi_get_req() local
897 tpg = READ_ONCE(vs_tpg[*vc->target]); in vhost_scsi_get_req()
898 if (unlikely(!tpg)) { in vhost_scsi_get_req()
902 *tpgp = tpg; in vhost_scsi_get_req()
913 struct vhost_scsi_tpg **vs_tpg, *tpg; in vhost_scsi_handle_vq() local
971 ret = vhost_scsi_get_req(vq, &vc, &tpg); in vhost_scsi_handle_vq()
1068 cmd = vhost_scsi_get_tag(vq, tpg, cdb, tag, lun, task_attr, in vhost_scsi_handle_vq()
1290 struct vhost_scsi_tpg *tpg, in vhost_scsi_send_evt() argument
1301 if (tpg && lun) { in vhost_scsi_send_evt()
1308 evt->event.lun[1] = tpg->tport_tpgt; in vhost_scsi_send_evt()
1389 struct vhost_scsi_tpg *tpg; in vhost_scsi_set_endpoint() local
1416 list_for_each_entry(tpg, &vhost_scsi_list, tv_tpg_list) { in vhost_scsi_set_endpoint()
1417 mutex_lock(&tpg->tv_tpg_mutex); in vhost_scsi_set_endpoint()
1418 if (!tpg->tpg_nexus) { in vhost_scsi_set_endpoint()
1419 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_set_endpoint()
1422 if (tpg->tv_tpg_vhost_count != 0) { in vhost_scsi_set_endpoint()
1423 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_set_endpoint()
1426 tv_tport = tpg->tport; in vhost_scsi_set_endpoint()
1429 if (vs->vs_tpg && vs->vs_tpg[tpg->tport_tpgt]) { in vhost_scsi_set_endpoint()
1431 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_set_endpoint()
1441 se_tpg = &tpg->se_tpg; in vhost_scsi_set_endpoint()
1446 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_set_endpoint()
1449 tpg->tv_tpg_vhost_count++; in vhost_scsi_set_endpoint()
1450 tpg->vhost_scsi = vs; in vhost_scsi_set_endpoint()
1451 vs_tpg[tpg->tport_tpgt] = tpg; in vhost_scsi_set_endpoint()
1454 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_set_endpoint()
1492 struct vhost_scsi_tpg *tpg; in vhost_scsi_clear_endpoint() local
1515 tpg = vs->vs_tpg[target]; in vhost_scsi_clear_endpoint()
1516 if (!tpg) in vhost_scsi_clear_endpoint()
1519 mutex_lock(&tpg->tv_tpg_mutex); in vhost_scsi_clear_endpoint()
1520 tv_tport = tpg->tport; in vhost_scsi_clear_endpoint()
1529 tv_tport->tport_name, tpg->tport_tpgt, in vhost_scsi_clear_endpoint()
1534 tpg->tv_tpg_vhost_count--; in vhost_scsi_clear_endpoint()
1535 tpg->vhost_scsi = NULL; in vhost_scsi_clear_endpoint()
1538 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_clear_endpoint()
1543 se_tpg = &tpg->se_tpg; in vhost_scsi_clear_endpoint()
1567 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_clear_endpoint()
1782 vhost_scsi_do_plug(struct vhost_scsi_tpg *tpg, in vhost_scsi_do_plug() argument
1786 struct vhost_scsi *vs = tpg->vhost_scsi; in vhost_scsi_do_plug()
1803 vhost_scsi_send_evt(vs, tpg, lun, in vhost_scsi_do_plug()
1809 static void vhost_scsi_hotplug(struct vhost_scsi_tpg *tpg, struct se_lun *lun) in vhost_scsi_hotplug() argument
1811 vhost_scsi_do_plug(tpg, lun, true); in vhost_scsi_hotplug()
1814 static void vhost_scsi_hotunplug(struct vhost_scsi_tpg *tpg, struct se_lun *lun) in vhost_scsi_hotunplug() argument
1816 vhost_scsi_do_plug(tpg, lun, false); in vhost_scsi_hotunplug()
1822 struct vhost_scsi_tpg *tpg = container_of(se_tpg, in vhost_scsi_port_link() local
1827 mutex_lock(&tpg->tv_tpg_mutex); in vhost_scsi_port_link()
1828 tpg->tv_tpg_port_count++; in vhost_scsi_port_link()
1829 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_port_link()
1831 vhost_scsi_hotplug(tpg, lun); in vhost_scsi_port_link()
1841 struct vhost_scsi_tpg *tpg = container_of(se_tpg, in vhost_scsi_port_unlink() local
1846 mutex_lock(&tpg->tv_tpg_mutex); in vhost_scsi_port_unlink()
1847 tpg->tv_tpg_port_count--; in vhost_scsi_port_unlink()
1848 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_port_unlink()
1850 vhost_scsi_hotunplug(tpg, lun); in vhost_scsi_port_unlink()
1876 struct vhost_scsi_tpg *tpg = container_of(se_tpg, in vhost_scsi_tpg_attrib_fabric_prot_type_store() local
1889 tpg->tv_fabric_prot_type = val; in vhost_scsi_tpg_attrib_fabric_prot_type_store()
1898 struct vhost_scsi_tpg *tpg = container_of(se_tpg, in vhost_scsi_tpg_attrib_fabric_prot_type_show() local
1901 return sprintf(page, "%d\n", tpg->tv_fabric_prot_type); in vhost_scsi_tpg_attrib_fabric_prot_type_show()
1950 static int vhost_scsi_make_nexus(struct vhost_scsi_tpg *tpg, in vhost_scsi_make_nexus() argument
1955 mutex_lock(&tpg->tv_tpg_mutex); in vhost_scsi_make_nexus()
1956 if (tpg->tpg_nexus) { in vhost_scsi_make_nexus()
1957 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_make_nexus()
1964 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_make_nexus()
1973 tv_nexus->tvn_se_sess = target_setup_session(&tpg->se_tpg, in vhost_scsi_make_nexus()
1980 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_make_nexus()
1984 tpg->tpg_nexus = tv_nexus; in vhost_scsi_make_nexus()
1986 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_make_nexus()
1990 static int vhost_scsi_drop_nexus(struct vhost_scsi_tpg *tpg) in vhost_scsi_drop_nexus() argument
1995 mutex_lock(&tpg->tv_tpg_mutex); in vhost_scsi_drop_nexus()
1996 tv_nexus = tpg->tpg_nexus; in vhost_scsi_drop_nexus()
1998 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_drop_nexus()
2004 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_drop_nexus()
2008 if (tpg->tv_tpg_port_count != 0) { in vhost_scsi_drop_nexus()
2009 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_drop_nexus()
2012 tpg->tv_tpg_port_count); in vhost_scsi_drop_nexus()
2016 if (tpg->tv_tpg_vhost_count != 0) { in vhost_scsi_drop_nexus()
2017 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_drop_nexus()
2020 tpg->tv_tpg_vhost_count); in vhost_scsi_drop_nexus()
2025 " %s Initiator Port: %s\n", vhost_scsi_dump_proto_id(tpg->tport), in vhost_scsi_drop_nexus()
2033 tpg->tpg_nexus = NULL; in vhost_scsi_drop_nexus()
2034 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_drop_nexus()
2043 struct vhost_scsi_tpg *tpg = container_of(se_tpg, in vhost_scsi_tpg_nexus_show() local
2048 mutex_lock(&tpg->tv_tpg_mutex); in vhost_scsi_tpg_nexus_show()
2049 tv_nexus = tpg->tpg_nexus; in vhost_scsi_tpg_nexus_show()
2051 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_tpg_nexus_show()
2056 mutex_unlock(&tpg->tv_tpg_mutex); in vhost_scsi_tpg_nexus_show()
2065 struct vhost_scsi_tpg *tpg = container_of(se_tpg, in vhost_scsi_tpg_nexus_store() local
2067 struct vhost_scsi_tport *tport_wwn = tpg->tport; in vhost_scsi_tpg_nexus_store()
2074 ret = vhost_scsi_drop_nexus(tpg); in vhost_scsi_tpg_nexus_store()
2132 ret = vhost_scsi_make_nexus(tpg, port_ptr); in vhost_scsi_tpg_nexus_store()
2152 struct vhost_scsi_tpg *tpg; in vhost_scsi_make_tpg() local
2161 tpg = kzalloc(sizeof(*tpg), GFP_KERNEL); in vhost_scsi_make_tpg()
2162 if (!tpg) { in vhost_scsi_make_tpg()
2166 mutex_init(&tpg->tv_tpg_mutex); in vhost_scsi_make_tpg()
2167 INIT_LIST_HEAD(&tpg->tv_tpg_list); in vhost_scsi_make_tpg()
2168 tpg->tport = tport; in vhost_scsi_make_tpg()
2169 tpg->tport_tpgt = tpgt; in vhost_scsi_make_tpg()
2171 ret = core_tpg_register(wwn, &tpg->se_tpg, tport->tport_proto_id); in vhost_scsi_make_tpg()
2173 kfree(tpg); in vhost_scsi_make_tpg()
2177 list_add_tail(&tpg->tv_tpg_list, &vhost_scsi_list); in vhost_scsi_make_tpg()
2180 return &tpg->se_tpg; in vhost_scsi_make_tpg()
2185 struct vhost_scsi_tpg *tpg = container_of(se_tpg, in vhost_scsi_drop_tpg() local
2189 list_del(&tpg->tv_tpg_list); in vhost_scsi_drop_tpg()
2194 vhost_scsi_drop_nexus(tpg); in vhost_scsi_drop_tpg()
2199 kfree(tpg); in vhost_scsi_drop_tpg()