static ssize_t target_stat_auth_map_indx_show(struct config_item *item, char *page) { struct se_lun_acl *lacl = auth_to_lacl(item); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* FIXME: scsiAuthIntrLunMapIndex */ ret = snprintf(page, PAGE_SIZE, "%u\n", 0); rcu_read_unlock(); return ret; }
static ssize_t target_stat_auth_att_count_show(struct config_item *item, char *page) { struct se_lun_acl *lacl = auth_to_lacl(item); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAuthIntrAttachedTimes */ ret = snprintf(page, PAGE_SIZE, "%u\n", deve->attach_count); rcu_read_unlock(); return ret; }
static ssize_t target_stat_iport_port_auth_indx_show(struct config_item *item, char *page) { struct se_lun_acl *lacl = iport_to_lacl(item); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAttIntrPortAuthIntrIdx */ ret = snprintf(page, PAGE_SIZE, "%u\n", nacl->acl_index); rcu_read_unlock(); return ret; }
static ssize_t target_stat_auth_intr_name_show(struct config_item *item, char *page) { struct se_lun_acl *lacl = auth_to_lacl(item); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAuthIntrName */ ret = snprintf(page, PAGE_SIZE, "%s\n", nacl->initiatorname); rcu_read_unlock(); return ret; }
static ssize_t target_stat_scsi_att_intr_port_show_attr_port_auth_indx( struct se_ml_stat_grps *lgrps, char *page) { struct se_lun_acl *lacl = container_of(lgrps, struct se_lun_acl, ml_stat_grps); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAttIntrPortAuthIntrIdx */ ret = snprintf(page, PAGE_SIZE, "%u\n", nacl->acl_index); rcu_read_unlock(); return ret; }
static ssize_t target_stat_scsi_auth_intr_show_attr_row_status( struct se_ml_stat_grps *lgrps, char *page) { struct se_lun_acl *lacl = container_of(lgrps, struct se_lun_acl, ml_stat_grps); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* FIXME: scsiAuthIntrRowStatus */ ret = snprintf(page, PAGE_SIZE, "Ready\n"); rcu_read_unlock(); return ret; }
static ssize_t target_stat_auth_creation_time_show(struct config_item *item, char *page) { struct se_lun_acl *lacl = auth_to_lacl(item); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAuthIntrLastCreation */ ret = snprintf(page, PAGE_SIZE, "%u\n", (u32)(((u32)deve->creation_time - INITIAL_JIFFIES) * 100 / HZ)); rcu_read_unlock(); return ret; }
static ssize_t target_stat_auth_write_mbytes_show(struct config_item *item, char *page) { struct se_lun_acl *lacl = auth_to_lacl(item); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAuthIntrWrittenMegaBytes */ ret = snprintf(page, PAGE_SIZE, "%u\n", (u32)(atomic_long_read(&deve->write_bytes) >> 20)); rcu_read_unlock(); return ret; }
static ssize_t target_stat_auth_num_cmds_show(struct config_item *item, char *page) { struct se_lun_acl *lacl = auth_to_lacl(item); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAuthIntrOutCommands */ ret = snprintf(page, PAGE_SIZE, "%lu\n", atomic_long_read(&deve->total_cmds)); rcu_read_unlock(); return ret; }
static ssize_t target_stat_scsi_auth_intr_show_attr_creation_time( struct se_ml_stat_grps *lgrps, char *page) { struct se_lun_acl *lacl = container_of(lgrps, struct se_lun_acl, ml_stat_grps); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAuthIntrLastCreation */ ret = snprintf(page, PAGE_SIZE, "%u\n", (u32)(((u32)deve->creation_time - INITIAL_JIFFIES) * 100 / HZ)); rcu_read_unlock(); return ret; }
static ssize_t target_stat_scsi_auth_intr_show_attr_write_mbytes( struct se_ml_stat_grps *lgrps, char *page) { struct se_lun_acl *lacl = container_of(lgrps, struct se_lun_acl, ml_stat_grps); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAuthIntrWrittenMegaBytes */ ret = snprintf(page, PAGE_SIZE, "%u\n", (u32)(atomic_long_read(&deve->write_bytes) >> 20)); rcu_read_unlock(); return ret; }
static ssize_t target_stat_scsi_auth_intr_show_attr_num_cmds( struct se_ml_stat_grps *lgrps, char *page) { struct se_lun_acl *lacl = container_of(lgrps, struct se_lun_acl, ml_stat_grps); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } /* scsiAuthIntrOutCommands */ ret = snprintf(page, PAGE_SIZE, "%lu\n", atomic_long_read(&deve->total_cmds)); rcu_read_unlock(); return ret; }
static ssize_t target_stat_auth_port_show(struct config_item *item, char *page) { struct se_lun_acl *lacl = auth_to_lacl(item); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; struct se_portal_group *tpg; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } tpg = nacl->se_tpg; /* scsiAuthIntrTgtPortIndex */ ret = snprintf(page, PAGE_SIZE, "%u\n", tpg->se_tpg_tfo->tpg_get_tag(tpg)); rcu_read_unlock(); return ret; }
static ssize_t target_stat_auth_dev_show(struct config_item *item, char *page) { struct se_lun_acl *lacl = auth_to_lacl(item); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; struct se_lun *lun; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } lun = rcu_dereference(deve->se_lun); /* scsiDeviceIndex */ ret = snprintf(page, PAGE_SIZE, "%u\n", lun->lun_index); rcu_read_unlock(); return ret; }
static ssize_t target_stat_scsi_att_intr_port_show_attr_port( struct se_ml_stat_grps *lgrps, char *page) { struct se_lun_acl *lacl = container_of(lgrps, struct se_lun_acl, ml_stat_grps); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; struct se_portal_group *tpg; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } tpg = nacl->se_tpg; /* scsiPortIndex */ ret = snprintf(page, PAGE_SIZE, "%u\n", tpg->se_tpg_tfo->tpg_get_tag(tpg)); rcu_read_unlock(); return ret; }
static ssize_t target_stat_scsi_att_intr_port_show_attr_dev( struct se_ml_stat_grps *lgrps, char *page) { struct se_lun_acl *lacl = container_of(lgrps, struct se_lun_acl, ml_stat_grps); struct se_node_acl *nacl = lacl->se_lun_nacl; struct se_dev_entry *deve; struct se_lun *lun; ssize_t ret; rcu_read_lock(); deve = target_nacl_find_deve(nacl, lacl->mapped_lun); if (!deve) { rcu_read_unlock(); return -ENODEV; } lun = rcu_dereference(deve->se_lun); /* scsiDeviceIndex */ ret = snprintf(page, PAGE_SIZE, "%u\n", lun->lun_index); rcu_read_unlock(); return ret; }