static ssize_t target_stat_transport_inst_show(struct config_item *item, char *page) { struct se_lun *lun = to_transport_stat(item); struct se_device *dev; ssize_t ret = -ENODEV; rcu_read_lock(); dev = rcu_dereference(lun->lun_se_dev); if (dev) ret = snprintf(page, PAGE_SIZE, "%u\n", dev->hba_index); rcu_read_unlock(); return ret; }
static ssize_t target_stat_transport_proto_id_show(struct config_item *item, char *page) { struct se_lun *lun = to_transport_stat(item); struct se_device *dev; struct se_portal_group *tpg = lun->lun_tpg; ssize_t ret = -ENODEV; rcu_read_lock(); dev = rcu_dereference(lun->lun_se_dev); if (dev) ret = snprintf(page, PAGE_SIZE, "%u\n", tpg->proto_id); rcu_read_unlock(); return ret; }
static ssize_t target_stat_transport_device_show(struct config_item *item, char *page) { struct se_lun *lun = to_transport_stat(item); struct se_device *dev; struct se_portal_group *tpg = lun->lun_tpg; ssize_t ret = -ENODEV; rcu_read_lock(); dev = rcu_dereference(lun->lun_se_dev); if (dev) { /* scsiTransportType */ ret = snprintf(page, PAGE_SIZE, "scsiTransport%s\n", tpg->se_tpg_tfo->get_fabric_name()); } rcu_read_unlock(); return ret; }
static ssize_t target_stat_transport_dev_name_show(struct config_item *item, char *page) { struct se_lun *lun = to_transport_stat(item); struct se_device *dev; struct se_portal_group *tpg = lun->lun_tpg; struct t10_wwn *wwn; ssize_t ret = -ENODEV; rcu_read_lock(); dev = rcu_dereference(lun->lun_se_dev); if (dev) { wwn = &dev->t10_wwn; /* scsiTransportDevName */ ret = snprintf(page, PAGE_SIZE, "%s+%s\n", tpg->se_tpg_tfo->tpg_get_wwn(tpg), (strlen(wwn->unit_serial)) ? wwn->unit_serial : wwn->vendor); } rcu_read_unlock(); return ret; }