forked from Minki/linux
scsi: target: drop unnecessary get_fabric_name() accessor from fabric_ops
All fabrics return a const string. In all cases *except* iSCSI the get_fabric_name() string matches fabric_ops.name. Both fabric_ops.get_fabric_name() and fabric_ops.name are user-facing, with the former being used for PR/ALUA state and the latter for ConfigFS (config/target/$name), so we unfortunately need to keep both strings around for now. Replace the useless .get_fabric_name() accessor function with a const string fabric_name member variable. Signed-off-by: David Disseldorp <ddiss@suse.de> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
6baca7601b
commit
30c7ca9350
@ -3147,11 +3147,6 @@ static int srpt_check_false(struct se_portal_group *se_tpg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *srpt_get_fabric_name(void)
|
||||
{
|
||||
return "srpt";
|
||||
}
|
||||
|
||||
static struct srpt_port *srpt_tpg_to_sport(struct se_portal_group *tpg)
|
||||
{
|
||||
return tpg->se_tpg_wwn->priv;
|
||||
@ -3679,7 +3674,7 @@ static struct configfs_attribute *srpt_wwn_attrs[] = {
|
||||
static const struct target_core_fabric_ops srpt_template = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "srpt",
|
||||
.get_fabric_name = srpt_get_fabric_name,
|
||||
.fabric_name = "srpt",
|
||||
.tpg_get_wwn = srpt_get_fabric_wwn,
|
||||
.tpg_get_tag = srpt_get_tag,
|
||||
.tpg_check_demo_mode = srpt_check_false,
|
||||
|
@ -3695,11 +3695,6 @@ static int ibmvscsis_get_system_info(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *ibmvscsis_get_fabric_name(void)
|
||||
{
|
||||
return "ibmvscsis";
|
||||
}
|
||||
|
||||
static char *ibmvscsis_get_fabric_wwn(struct se_portal_group *se_tpg)
|
||||
{
|
||||
struct ibmvscsis_tport *tport =
|
||||
@ -4045,8 +4040,8 @@ static struct configfs_attribute *ibmvscsis_tpg_attrs[] = {
|
||||
static const struct target_core_fabric_ops ibmvscsis_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "ibmvscsis",
|
||||
.fabric_name = "ibmvscsis",
|
||||
.max_data_sg_nents = MAX_TXU / PAGE_SIZE,
|
||||
.get_fabric_name = ibmvscsis_get_fabric_name,
|
||||
.tpg_get_wwn = ibmvscsis_get_fabric_wwn,
|
||||
.tpg_get_tag = ibmvscsis_get_tag,
|
||||
.tpg_get_default_depth = ibmvscsis_get_default_depth,
|
||||
|
@ -108,11 +108,6 @@ static ssize_t tcm_qla2xxx_format_wwn(char *buf, size_t len, u64 wwn)
|
||||
b[0], b[1], b[2], b[3], b[4], b[5], b[6], b[7]);
|
||||
}
|
||||
|
||||
static char *tcm_qla2xxx_get_fabric_name(void)
|
||||
{
|
||||
return "qla2xxx";
|
||||
}
|
||||
|
||||
/*
|
||||
* From drivers/scsi/scsi_transport_fc.c:fc_parse_wwn
|
||||
*/
|
||||
@ -178,11 +173,6 @@ static int tcm_qla2xxx_npiv_parse_wwn(
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *tcm_qla2xxx_npiv_get_fabric_name(void)
|
||||
{
|
||||
return "qla2xxx_npiv";
|
||||
}
|
||||
|
||||
static char *tcm_qla2xxx_get_fabric_wwn(struct se_portal_group *se_tpg)
|
||||
{
|
||||
struct tcm_qla2xxx_tpg *tpg = container_of(se_tpg,
|
||||
@ -1921,13 +1911,13 @@ static struct configfs_attribute *tcm_qla2xxx_wwn_attrs[] = {
|
||||
static const struct target_core_fabric_ops tcm_qla2xxx_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "qla2xxx",
|
||||
.fabric_name = "qla2xxx",
|
||||
.node_acl_size = sizeof(struct tcm_qla2xxx_nacl),
|
||||
/*
|
||||
* XXX: Limit assumes single page per scatter-gather-list entry.
|
||||
* Current maximum is ~4.9 MB per se_cmd->t_data_sg with PAGE_SIZE=4096
|
||||
*/
|
||||
.max_data_sg_nents = 1200,
|
||||
.get_fabric_name = tcm_qla2xxx_get_fabric_name,
|
||||
.tpg_get_wwn = tcm_qla2xxx_get_fabric_wwn,
|
||||
.tpg_get_tag = tcm_qla2xxx_get_tag,
|
||||
.tpg_check_demo_mode = tcm_qla2xxx_check_demo_mode,
|
||||
@ -1970,8 +1960,8 @@ static const struct target_core_fabric_ops tcm_qla2xxx_ops = {
|
||||
static const struct target_core_fabric_ops tcm_qla2xxx_npiv_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "qla2xxx_npiv",
|
||||
.fabric_name = "qla2xxx_npiv",
|
||||
.node_acl_size = sizeof(struct tcm_qla2xxx_nacl),
|
||||
.get_fabric_name = tcm_qla2xxx_npiv_get_fabric_name,
|
||||
.tpg_get_wwn = tcm_qla2xxx_get_fabric_wwn,
|
||||
.tpg_get_tag = tcm_qla2xxx_get_tag,
|
||||
.tpg_check_demo_mode = tcm_qla2xxx_check_demo_mode,
|
||||
|
@ -1343,11 +1343,6 @@ static struct configfs_attribute *lio_target_discovery_auth_attrs[] = {
|
||||
|
||||
/* Start functions for target_core_fabric_ops */
|
||||
|
||||
static char *iscsi_get_fabric_name(void)
|
||||
{
|
||||
return "iSCSI";
|
||||
}
|
||||
|
||||
static int iscsi_get_cmd_state(struct se_cmd *se_cmd)
|
||||
{
|
||||
struct iscsi_cmd *cmd = container_of(se_cmd, struct iscsi_cmd, se_cmd);
|
||||
@ -1550,8 +1545,8 @@ static void lio_release_cmd(struct se_cmd *se_cmd)
|
||||
const struct target_core_fabric_ops iscsi_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "iscsi",
|
||||
.fabric_name = "iSCSI",
|
||||
.node_acl_size = sizeof(struct iscsi_node_acl),
|
||||
.get_fabric_name = iscsi_get_fabric_name,
|
||||
.tpg_get_wwn = lio_tpg_get_endpoint_wwn,
|
||||
.tpg_get_tag = lio_tpg_get_tag,
|
||||
.tpg_get_default_depth = lio_tpg_get_default_depth,
|
||||
|
@ -460,11 +460,6 @@ static void tcm_loop_release_core_bus(void)
|
||||
pr_debug("Releasing TCM Loop Core BUS\n");
|
||||
}
|
||||
|
||||
static char *tcm_loop_get_fabric_name(void)
|
||||
{
|
||||
return "loopback";
|
||||
}
|
||||
|
||||
static inline struct tcm_loop_tpg *tl_tpg(struct se_portal_group *se_tpg)
|
||||
{
|
||||
return container_of(se_tpg, struct tcm_loop_tpg, tl_se_tpg);
|
||||
@ -1150,7 +1145,7 @@ static struct configfs_attribute *tcm_loop_wwn_attrs[] = {
|
||||
static const struct target_core_fabric_ops loop_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "loopback",
|
||||
.get_fabric_name = tcm_loop_get_fabric_name,
|
||||
.fabric_name = "loopback",
|
||||
.tpg_get_wwn = tcm_loop_get_endpoint_wwn,
|
||||
.tpg_get_tag = tcm_loop_get_tag,
|
||||
.tpg_check_demo_mode = tcm_loop_check_demo_mode,
|
||||
|
@ -1694,11 +1694,6 @@ static int sbp_check_false(struct se_portal_group *se_tpg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *sbp_get_fabric_name(void)
|
||||
{
|
||||
return "sbp";
|
||||
}
|
||||
|
||||
static char *sbp_get_fabric_wwn(struct se_portal_group *se_tpg)
|
||||
{
|
||||
struct sbp_tpg *tpg = container_of(se_tpg, struct sbp_tpg, se_tpg);
|
||||
@ -2324,7 +2319,7 @@ static struct configfs_attribute *sbp_tpg_attrib_attrs[] = {
|
||||
static const struct target_core_fabric_ops sbp_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "sbp",
|
||||
.get_fabric_name = sbp_get_fabric_name,
|
||||
.fabric_name = "sbp",
|
||||
.tpg_get_wwn = sbp_get_fabric_wwn,
|
||||
.tpg_get_tag = sbp_get_tag,
|
||||
.tpg_check_demo_mode = sbp_check_true,
|
||||
|
@ -451,7 +451,7 @@ static inline void set_ascq(struct se_cmd *cmd, u8 alua_ascq)
|
||||
pr_debug("[%s]: ALUA TG Port not available, "
|
||||
"SenseKey: NOT_READY, ASC/ASCQ: "
|
||||
"0x04/0x%02x\n",
|
||||
cmd->se_tfo->get_fabric_name(), alua_ascq);
|
||||
cmd->se_tfo->fabric_name, alua_ascq);
|
||||
|
||||
cmd->scsi_asc = 0x04;
|
||||
cmd->scsi_ascq = alua_ascq;
|
||||
@ -1229,13 +1229,13 @@ static int core_alua_update_tpg_secondary_metadata(struct se_lun *lun)
|
||||
|
||||
if (se_tpg->se_tpg_tfo->tpg_get_tag != NULL) {
|
||||
path = kasprintf(GFP_KERNEL, "%s/alua/%s/%s+%hu/lun_%llu",
|
||||
db_root, se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
db_root, se_tpg->se_tpg_tfo->fabric_name,
|
||||
se_tpg->se_tpg_tfo->tpg_get_wwn(se_tpg),
|
||||
se_tpg->se_tpg_tfo->tpg_get_tag(se_tpg),
|
||||
lun->unpacked_lun);
|
||||
} else {
|
||||
path = kasprintf(GFP_KERNEL, "%s/alua/%s/%s/lun_%llu",
|
||||
db_root, se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
db_root, se_tpg->se_tpg_tfo->fabric_name,
|
||||
se_tpg->se_tpg_tfo->tpg_get_wwn(se_tpg),
|
||||
lun->unpacked_lun);
|
||||
}
|
||||
|
@ -351,8 +351,8 @@ static int target_fabric_tf_ops_check(const struct target_core_fabric_ops *tfo)
|
||||
"_NAME_SIZE\n", tfo->name);
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!tfo->get_fabric_name) {
|
||||
pr_err("Missing tfo->get_fabric_name()\n");
|
||||
if (!tfo->fabric_name) {
|
||||
pr_err("Missing tfo->fabric_name\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
if (!tfo->tpg_get_wwn) {
|
||||
@ -1403,7 +1403,7 @@ static ssize_t target_core_dev_pr_show_spc3_res(struct se_device *dev,
|
||||
core_pr_dump_initiator_port(pr_reg, i_buf, PR_REG_ISID_ID_LEN);
|
||||
|
||||
return sprintf(page, "SPC-3 Reservation: %s Initiator: %s%s\n",
|
||||
se_nacl->se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
se_nacl->se_tpg->se_tpg_tfo->fabric_name,
|
||||
se_nacl->initiatorname, i_buf);
|
||||
}
|
||||
|
||||
@ -1417,7 +1417,7 @@ static ssize_t target_core_dev_pr_show_spc2_res(struct se_device *dev,
|
||||
if (se_nacl) {
|
||||
len = sprintf(page,
|
||||
"SPC-2 Reservation: %s Initiator: %s\n",
|
||||
se_nacl->se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
se_nacl->se_tpg->se_tpg_tfo->fabric_name,
|
||||
se_nacl->initiatorname);
|
||||
} else {
|
||||
len = sprintf(page, "No SPC-2 Reservation holder\n");
|
||||
@ -1495,13 +1495,13 @@ static ssize_t target_pr_res_pr_holder_tg_port_show(struct config_item *item,
|
||||
tfo = se_tpg->se_tpg_tfo;
|
||||
|
||||
len += sprintf(page+len, "SPC-3 Reservation: %s"
|
||||
" Target Node Endpoint: %s\n", tfo->get_fabric_name(),
|
||||
" Target Node Endpoint: %s\n", tfo->fabric_name,
|
||||
tfo->tpg_get_wwn(se_tpg));
|
||||
len += sprintf(page+len, "SPC-3 Reservation: Relative Port"
|
||||
" Identifier Tag: %hu %s Portal Group Tag: %hu"
|
||||
" %s Logical Unit: %llu\n", pr_reg->tg_pt_sep_rtpi,
|
||||
tfo->get_fabric_name(), tfo->tpg_get_tag(se_tpg),
|
||||
tfo->get_fabric_name(), pr_reg->pr_aptpl_target_lun);
|
||||
tfo->fabric_name, tfo->tpg_get_tag(se_tpg),
|
||||
tfo->fabric_name, pr_reg->pr_aptpl_target_lun);
|
||||
|
||||
out_unlock:
|
||||
spin_unlock(&dev->dev_reservation_lock);
|
||||
@ -1532,7 +1532,7 @@ static ssize_t target_pr_res_pr_registered_i_pts_show(struct config_item *item,
|
||||
core_pr_dump_initiator_port(pr_reg, i_buf,
|
||||
PR_REG_ISID_ID_LEN);
|
||||
sprintf(buf, "%s Node: %s%s Key: 0x%016Lx PRgen: 0x%08x\n",
|
||||
tfo->get_fabric_name(),
|
||||
tfo->fabric_name,
|
||||
pr_reg->pr_reg_nacl->initiatorname, i_buf, pr_reg->pr_res_key,
|
||||
pr_reg->pr_res_generation);
|
||||
|
||||
@ -2757,7 +2757,7 @@ static ssize_t target_tg_pt_gp_members_show(struct config_item *item,
|
||||
struct se_portal_group *tpg = lun->lun_tpg;
|
||||
|
||||
cur_len = snprintf(buf, TG_PT_GROUP_NAME_BUF, "%s/%s/tpgt_%hu"
|
||||
"/%s\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
"/%s\n", tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_wwn(tpg),
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg),
|
||||
config_item_name(&lun->lun_group.cg_item));
|
||||
|
@ -95,7 +95,7 @@ transport_lookup_cmd_lun(struct se_cmd *se_cmd, u64 unpacked_lun)
|
||||
deve->lun_access_ro) {
|
||||
pr_err("TARGET_CORE[%s]: Detected WRITE_PROTECTED LUN"
|
||||
" Access for 0x%08llx\n",
|
||||
se_cmd->se_tfo->get_fabric_name(),
|
||||
se_cmd->se_tfo->fabric_name,
|
||||
unpacked_lun);
|
||||
rcu_read_unlock();
|
||||
ret = TCM_WRITE_PROTECTED;
|
||||
@ -114,7 +114,7 @@ out_unlock:
|
||||
if (unpacked_lun != 0) {
|
||||
pr_err("TARGET_CORE[%s]: Detected NON_EXISTENT_LUN"
|
||||
" Access for 0x%08llx\n",
|
||||
se_cmd->se_tfo->get_fabric_name(),
|
||||
se_cmd->se_tfo->fabric_name,
|
||||
unpacked_lun);
|
||||
return TCM_NON_EXISTENT_LUN;
|
||||
}
|
||||
@ -188,7 +188,7 @@ out_unlock:
|
||||
if (!se_lun) {
|
||||
pr_debug("TARGET_CORE[%s]: Detected NON_EXISTENT_LUN"
|
||||
" Access for 0x%08llx\n",
|
||||
se_cmd->se_tfo->get_fabric_name(),
|
||||
se_cmd->se_tfo->fabric_name,
|
||||
unpacked_lun);
|
||||
return -ENODEV;
|
||||
}
|
||||
@ -237,7 +237,7 @@ struct se_dev_entry *core_get_se_deve_from_rtpi(
|
||||
if (!lun) {
|
||||
pr_err("%s device entries device pointer is"
|
||||
" NULL, but Initiator has access.\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name());
|
||||
tpg->se_tpg_tfo->fabric_name);
|
||||
continue;
|
||||
}
|
||||
if (lun->lun_rtpi != rtpi)
|
||||
@ -571,9 +571,9 @@ int core_dev_add_lun(
|
||||
return rc;
|
||||
|
||||
pr_debug("%s_TPG[%u]_LUN[%llu] - Activated %s Logical Unit from"
|
||||
" CORE HBA: %u\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" CORE HBA: %u\n", tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun,
|
||||
tpg->se_tpg_tfo->get_fabric_name(), dev->se_hba->hba_id);
|
||||
tpg->se_tpg_tfo->fabric_name, dev->se_hba->hba_id);
|
||||
/*
|
||||
* Update LUN maps for dynamically added initiators when
|
||||
* generate_node_acl is enabled.
|
||||
@ -604,9 +604,9 @@ void core_dev_del_lun(
|
||||
struct se_lun *lun)
|
||||
{
|
||||
pr_debug("%s_TPG[%u]_LUN[%llu] - Deactivating %s Logical Unit from"
|
||||
" device object\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" device object\n", tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun,
|
||||
tpg->se_tpg_tfo->get_fabric_name());
|
||||
tpg->se_tpg_tfo->fabric_name);
|
||||
|
||||
core_tpg_remove_lun(tpg, lun);
|
||||
}
|
||||
@ -621,7 +621,7 @@ struct se_lun_acl *core_dev_init_initiator_node_lun_acl(
|
||||
|
||||
if (strlen(nacl->initiatorname) >= TRANSPORT_IQN_LEN) {
|
||||
pr_err("%s InitiatorName exceeds maximum size.\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name());
|
||||
tpg->se_tpg_tfo->fabric_name);
|
||||
*ret = -EOVERFLOW;
|
||||
return NULL;
|
||||
}
|
||||
@ -664,7 +664,7 @@ int core_dev_add_initiator_node_lun_acl(
|
||||
return -EINVAL;
|
||||
|
||||
pr_debug("%s_TPG[%hu]_LUN[%llu->%llu] - Added %s ACL for "
|
||||
" InitiatorNode: %s\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" InitiatorNode: %s\n", tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun, lacl->mapped_lun,
|
||||
lun_access_ro ? "RO" : "RW",
|
||||
nacl->initiatorname);
|
||||
@ -697,7 +697,7 @@ int core_dev_del_initiator_node_lun_acl(
|
||||
|
||||
pr_debug("%s_TPG[%hu]_LUN[%llu] - Removed ACL for"
|
||||
" InitiatorNode: %s Mapped LUN: %llu\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun,
|
||||
nacl->initiatorname, lacl->mapped_lun);
|
||||
|
||||
@ -709,9 +709,9 @@ void core_dev_free_initiator_node_lun_acl(
|
||||
struct se_lun_acl *lacl)
|
||||
{
|
||||
pr_debug("%s_TPG[%hu] - Freeing ACL for %s InitiatorNode: %s"
|
||||
" Mapped LUN: %llu\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" Mapped LUN: %llu\n", tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg),
|
||||
tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tpg->se_tpg_tfo->fabric_name,
|
||||
lacl->se_lun_nacl->initiatorname, lacl->mapped_lun);
|
||||
|
||||
kfree(lacl);
|
||||
|
@ -203,7 +203,7 @@ static ssize_t target_fabric_mappedlun_write_protect_store(
|
||||
|
||||
pr_debug("%s_ConfigFS: Changed Initiator ACL: %s"
|
||||
" Mapped LUN: %llu Write Protect bit to %s\n",
|
||||
se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
se_tpg->se_tpg_tfo->fabric_name,
|
||||
se_nacl->initiatorname, lacl->mapped_lun, (wp) ? "ON" : "OFF");
|
||||
|
||||
return count;
|
||||
|
@ -235,7 +235,7 @@ target_scsi2_reservation_release(struct se_cmd *cmd)
|
||||
tpg = sess->se_tpg;
|
||||
pr_debug("SCSI-2 Released reservation for %s LUN: %llu ->"
|
||||
" MAPPED LUN: %llu for %s\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tpg->se_tpg_tfo->fabric_name,
|
||||
cmd->se_lun->unpacked_lun, cmd->orig_fe_lun,
|
||||
sess->se_node_acl->initiatorname);
|
||||
|
||||
@ -278,7 +278,7 @@ target_scsi2_reservation_reserve(struct se_cmd *cmd)
|
||||
if (dev->dev_reserved_node_acl &&
|
||||
(dev->dev_reserved_node_acl != sess->se_node_acl)) {
|
||||
pr_err("SCSI-2 RESERVATION CONFLIFT for %s fabric\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name());
|
||||
tpg->se_tpg_tfo->fabric_name);
|
||||
pr_err("Original reserver LUN: %llu %s\n",
|
||||
cmd->se_lun->unpacked_lun,
|
||||
dev->dev_reserved_node_acl->initiatorname);
|
||||
@ -297,7 +297,7 @@ target_scsi2_reservation_reserve(struct se_cmd *cmd)
|
||||
dev->dev_reservation_flags |= DRF_SPC2_RESERVATIONS_WITH_ISID;
|
||||
}
|
||||
pr_debug("SCSI-2 Reserved %s LUN: %llu -> MAPPED LUN: %llu"
|
||||
" for %s\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" for %s\n", tpg->se_tpg_tfo->fabric_name,
|
||||
cmd->se_lun->unpacked_lun, cmd->orig_fe_lun,
|
||||
sess->se_node_acl->initiatorname);
|
||||
|
||||
@ -914,11 +914,11 @@ static void core_scsi3_aptpl_reserve(
|
||||
|
||||
pr_debug("SPC-3 PR [%s] Service Action: APTPL RESERVE created"
|
||||
" new reservation holder TYPE: %s ALL_TG_PT: %d\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tpg->se_tpg_tfo->fabric_name,
|
||||
core_scsi3_pr_dump_type(pr_reg->pr_res_type),
|
||||
(pr_reg->pr_reg_all_tg_pt) ? 1 : 0);
|
||||
pr_debug("SPC-3 PR [%s] RESERVE Node: %s%s\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name(), node_acl->initiatorname,
|
||||
tpg->se_tpg_tfo->fabric_name, node_acl->initiatorname,
|
||||
i_buf);
|
||||
}
|
||||
|
||||
@ -1036,19 +1036,19 @@ static void __core_scsi3_dump_registration(
|
||||
core_pr_dump_initiator_port(pr_reg, i_buf, PR_REG_ISID_ID_LEN);
|
||||
|
||||
pr_debug("SPC-3 PR [%s] Service Action: REGISTER%s Initiator"
|
||||
" Node: %s%s\n", tfo->get_fabric_name(), (register_type == REGISTER_AND_MOVE) ?
|
||||
" Node: %s%s\n", tfo->fabric_name, (register_type == REGISTER_AND_MOVE) ?
|
||||
"_AND_MOVE" : (register_type == REGISTER_AND_IGNORE_EXISTING_KEY) ?
|
||||
"_AND_IGNORE_EXISTING_KEY" : "", nacl->initiatorname,
|
||||
i_buf);
|
||||
pr_debug("SPC-3 PR [%s] registration on Target Port: %s,0x%04x\n",
|
||||
tfo->get_fabric_name(), tfo->tpg_get_wwn(se_tpg),
|
||||
tfo->fabric_name, tfo->tpg_get_wwn(se_tpg),
|
||||
tfo->tpg_get_tag(se_tpg));
|
||||
pr_debug("SPC-3 PR [%s] for %s TCM Subsystem %s Object Target"
|
||||
" Port(s)\n", tfo->get_fabric_name(),
|
||||
" Port(s)\n", tfo->fabric_name,
|
||||
(pr_reg->pr_reg_all_tg_pt) ? "ALL" : "SINGLE",
|
||||
dev->transport->name);
|
||||
pr_debug("SPC-3 PR [%s] SA Res Key: 0x%016Lx PRgeneration:"
|
||||
" 0x%08x APTPL: %d\n", tfo->get_fabric_name(),
|
||||
" 0x%08x APTPL: %d\n", tfo->fabric_name,
|
||||
pr_reg->pr_res_key, pr_reg->pr_res_generation,
|
||||
pr_reg->pr_reg_aptpl);
|
||||
}
|
||||
@ -1329,7 +1329,7 @@ static void __core_scsi3_free_registration(
|
||||
*/
|
||||
while (atomic_read(&pr_reg->pr_res_holders) != 0) {
|
||||
pr_debug("SPC-3 PR [%s] waiting for pr_res_holders\n",
|
||||
tfo->get_fabric_name());
|
||||
tfo->fabric_name);
|
||||
cpu_relax();
|
||||
}
|
||||
|
||||
@ -1341,15 +1341,15 @@ static void __core_scsi3_free_registration(
|
||||
|
||||
spin_lock(&pr_tmpl->registration_lock);
|
||||
pr_debug("SPC-3 PR [%s] Service Action: UNREGISTER Initiator"
|
||||
" Node: %s%s\n", tfo->get_fabric_name(),
|
||||
" Node: %s%s\n", tfo->fabric_name,
|
||||
pr_reg->pr_reg_nacl->initiatorname,
|
||||
i_buf);
|
||||
pr_debug("SPC-3 PR [%s] for %s TCM Subsystem %s Object Target"
|
||||
" Port(s)\n", tfo->get_fabric_name(),
|
||||
" Port(s)\n", tfo->fabric_name,
|
||||
(pr_reg->pr_reg_all_tg_pt) ? "ALL" : "SINGLE",
|
||||
dev->transport->name);
|
||||
pr_debug("SPC-3 PR [%s] SA Res Key: 0x%016Lx PRgeneration:"
|
||||
" 0x%08x\n", tfo->get_fabric_name(), pr_reg->pr_res_key,
|
||||
" 0x%08x\n", tfo->fabric_name, pr_reg->pr_res_key,
|
||||
pr_reg->pr_res_generation);
|
||||
|
||||
if (!preempt_and_abort_list) {
|
||||
@ -1645,7 +1645,7 @@ core_scsi3_decode_spec_i_port(
|
||||
dest_tpg = tmp_tpg;
|
||||
pr_debug("SPC-3 PR SPEC_I_PT: Located %s Node:"
|
||||
" %s Port RTPI: %hu\n",
|
||||
dest_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
dest_tpg->se_tpg_tfo->fabric_name,
|
||||
dest_node_acl->initiatorname, dest_rtpi);
|
||||
|
||||
spin_lock(&dev->se_port_lock);
|
||||
@ -1662,7 +1662,7 @@ core_scsi3_decode_spec_i_port(
|
||||
|
||||
pr_debug("SPC-3 PR SPEC_I_PT: Got %s data_length: %u tpdl: %u"
|
||||
" tid_len: %d for %s + %s\n",
|
||||
dest_tpg->se_tpg_tfo->get_fabric_name(), cmd->data_length,
|
||||
dest_tpg->se_tpg_tfo->fabric_name, cmd->data_length,
|
||||
tpdl, tid_len, i_str, iport_ptr);
|
||||
|
||||
if (tid_len > tpdl) {
|
||||
@ -1683,7 +1683,7 @@ core_scsi3_decode_spec_i_port(
|
||||
if (!dest_se_deve) {
|
||||
pr_err("Unable to locate %s dest_se_deve"
|
||||
" from destination RTPI: %hu\n",
|
||||
dest_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
dest_tpg->se_tpg_tfo->fabric_name,
|
||||
dest_rtpi);
|
||||
|
||||
core_scsi3_nodeacl_undepend_item(dest_node_acl);
|
||||
@ -1704,7 +1704,7 @@ core_scsi3_decode_spec_i_port(
|
||||
|
||||
pr_debug("SPC-3 PR SPEC_I_PT: Located %s Node: %s"
|
||||
" dest_se_deve mapped_lun: %llu\n",
|
||||
dest_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
dest_tpg->se_tpg_tfo->fabric_name,
|
||||
dest_node_acl->initiatorname, dest_se_deve->mapped_lun);
|
||||
|
||||
/*
|
||||
@ -1815,7 +1815,7 @@ core_scsi3_decode_spec_i_port(
|
||||
|
||||
pr_debug("SPC-3 PR [%s] SPEC_I_PT: Successfully"
|
||||
" registered Transport ID for Node: %s%s Mapped LUN:"
|
||||
" %llu\n", dest_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" %llu\n", dest_tpg->se_tpg_tfo->fabric_name,
|
||||
dest_node_acl->initiatorname, i_buf, (dest_se_deve) ?
|
||||
dest_se_deve->mapped_lun : 0);
|
||||
|
||||
@ -1913,7 +1913,7 @@ static int core_scsi3_update_aptpl_buf(
|
||||
"res_holder=1\nres_type=%02x\n"
|
||||
"res_scope=%02x\nres_all_tg_pt=%d\n"
|
||||
"mapped_lun=%llu\n", reg_count,
|
||||
tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tpg->se_tpg_tfo->fabric_name,
|
||||
pr_reg->pr_reg_nacl->initiatorname, isid_buf,
|
||||
pr_reg->pr_res_key, pr_reg->pr_res_type,
|
||||
pr_reg->pr_res_scope, pr_reg->pr_reg_all_tg_pt,
|
||||
@ -1923,7 +1923,7 @@ static int core_scsi3_update_aptpl_buf(
|
||||
"initiator_fabric=%s\ninitiator_node=%s\n%s"
|
||||
"sa_res_key=%llu\nres_holder=0\n"
|
||||
"res_all_tg_pt=%d\nmapped_lun=%llu\n",
|
||||
reg_count, tpg->se_tpg_tfo->get_fabric_name(),
|
||||
reg_count, tpg->se_tpg_tfo->fabric_name,
|
||||
pr_reg->pr_reg_nacl->initiatorname, isid_buf,
|
||||
pr_reg->pr_res_key, pr_reg->pr_reg_all_tg_pt,
|
||||
pr_reg->pr_res_mapped_lun);
|
||||
@ -1942,7 +1942,7 @@ static int core_scsi3_update_aptpl_buf(
|
||||
*/
|
||||
snprintf(tmp, 512, "target_fabric=%s\ntarget_node=%s\n"
|
||||
"tpgt=%hu\nport_rtpi=%hu\ntarget_lun=%llu\nPR_REG_END:"
|
||||
" %d\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" %d\n", tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_wwn(tpg),
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg),
|
||||
pr_reg->tg_pt_sep_rtpi, pr_reg->pr_aptpl_target_lun,
|
||||
@ -2168,7 +2168,7 @@ core_scsi3_emulate_pro_register(struct se_cmd *cmd, u64 res_key, u64 sa_res_key,
|
||||
pr_reg->pr_res_key = sa_res_key;
|
||||
pr_debug("SPC-3 PR [%s] REGISTER%s: Changed Reservation"
|
||||
" Key for %s to: 0x%016Lx PRgeneration:"
|
||||
" 0x%08x\n", cmd->se_tfo->get_fabric_name(),
|
||||
" 0x%08x\n", cmd->se_tfo->fabric_name,
|
||||
(register_type == REGISTER_AND_IGNORE_EXISTING_KEY) ? "_AND_IGNORE_EXISTING_KEY" : "",
|
||||
pr_reg->pr_reg_nacl->initiatorname,
|
||||
pr_reg->pr_res_key, pr_reg->pr_res_generation);
|
||||
@ -2356,9 +2356,9 @@ core_scsi3_pro_reserve(struct se_cmd *cmd, int type, int scope, u64 res_key)
|
||||
pr_err("SPC-3 PR: Attempted RESERVE from"
|
||||
" [%s]: %s while reservation already held by"
|
||||
" [%s]: %s, returning RESERVATION_CONFLICT\n",
|
||||
cmd->se_tfo->get_fabric_name(),
|
||||
cmd->se_tfo->fabric_name,
|
||||
se_sess->se_node_acl->initiatorname,
|
||||
pr_res_nacl->se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
pr_res_nacl->se_tpg->se_tpg_tfo->fabric_name,
|
||||
pr_res_holder->pr_reg_nacl->initiatorname);
|
||||
|
||||
spin_unlock(&dev->dev_reservation_lock);
|
||||
@ -2379,9 +2379,9 @@ core_scsi3_pro_reserve(struct se_cmd *cmd, int type, int scope, u64 res_key)
|
||||
" [%s]: %s trying to change TYPE and/or SCOPE,"
|
||||
" while reservation already held by [%s]: %s,"
|
||||
" returning RESERVATION_CONFLICT\n",
|
||||
cmd->se_tfo->get_fabric_name(),
|
||||
cmd->se_tfo->fabric_name,
|
||||
se_sess->se_node_acl->initiatorname,
|
||||
pr_res_nacl->se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
pr_res_nacl->se_tpg->se_tpg_tfo->fabric_name,
|
||||
pr_res_holder->pr_reg_nacl->initiatorname);
|
||||
|
||||
spin_unlock(&dev->dev_reservation_lock);
|
||||
@ -2414,10 +2414,10 @@ core_scsi3_pro_reserve(struct se_cmd *cmd, int type, int scope, u64 res_key)
|
||||
|
||||
pr_debug("SPC-3 PR [%s] Service Action: RESERVE created new"
|
||||
" reservation holder TYPE: %s ALL_TG_PT: %d\n",
|
||||
cmd->se_tfo->get_fabric_name(), core_scsi3_pr_dump_type(type),
|
||||
cmd->se_tfo->fabric_name, core_scsi3_pr_dump_type(type),
|
||||
(pr_reg->pr_reg_all_tg_pt) ? 1 : 0);
|
||||
pr_debug("SPC-3 PR [%s] RESERVE Node: %s%s\n",
|
||||
cmd->se_tfo->get_fabric_name(),
|
||||
cmd->se_tfo->fabric_name,
|
||||
se_sess->se_node_acl->initiatorname,
|
||||
i_buf);
|
||||
spin_unlock(&dev->dev_reservation_lock);
|
||||
@ -2506,12 +2506,12 @@ out:
|
||||
if (!dev->dev_pr_res_holder) {
|
||||
pr_debug("SPC-3 PR [%s] Service Action: %s RELEASE cleared"
|
||||
" reservation holder TYPE: %s ALL_TG_PT: %d\n",
|
||||
tfo->get_fabric_name(), (explicit) ? "explicit" :
|
||||
tfo->fabric_name, (explicit) ? "explicit" :
|
||||
"implicit", core_scsi3_pr_dump_type(pr_res_type),
|
||||
(pr_reg->pr_reg_all_tg_pt) ? 1 : 0);
|
||||
}
|
||||
pr_debug("SPC-3 PR [%s] RELEASE Node: %s%s\n",
|
||||
tfo->get_fabric_name(), se_nacl->initiatorname,
|
||||
tfo->fabric_name, se_nacl->initiatorname,
|
||||
i_buf);
|
||||
/*
|
||||
* Clear TYPE and SCOPE for the next PROUT Service Action: RESERVE
|
||||
@ -2609,9 +2609,9 @@ core_scsi3_emulate_pro_release(struct se_cmd *cmd, int type, int scope,
|
||||
" reservation from [%s]: %s with different TYPE "
|
||||
"and/or SCOPE while reservation already held by"
|
||||
" [%s]: %s, returning RESERVATION_CONFLICT\n",
|
||||
cmd->se_tfo->get_fabric_name(),
|
||||
cmd->se_tfo->fabric_name,
|
||||
se_sess->se_node_acl->initiatorname,
|
||||
pr_res_nacl->se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
pr_res_nacl->se_tpg->se_tpg_tfo->fabric_name,
|
||||
pr_res_holder->pr_reg_nacl->initiatorname);
|
||||
|
||||
spin_unlock(&dev->dev_reservation_lock);
|
||||
@ -2752,7 +2752,7 @@ core_scsi3_emulate_pro_clear(struct se_cmd *cmd, u64 res_key)
|
||||
spin_unlock(&pr_tmpl->registration_lock);
|
||||
|
||||
pr_debug("SPC-3 PR [%s] Service Action: CLEAR complete\n",
|
||||
cmd->se_tfo->get_fabric_name());
|
||||
cmd->se_tfo->fabric_name);
|
||||
|
||||
core_scsi3_update_and_write_aptpl(cmd->se_dev, false);
|
||||
|
||||
@ -2791,11 +2791,11 @@ static void __core_scsi3_complete_pro_preempt(
|
||||
|
||||
pr_debug("SPC-3 PR [%s] Service Action: PREEMPT%s created new"
|
||||
" reservation holder TYPE: %s ALL_TG_PT: %d\n",
|
||||
tfo->get_fabric_name(), (preempt_type == PREEMPT_AND_ABORT) ? "_AND_ABORT" : "",
|
||||
tfo->fabric_name, (preempt_type == PREEMPT_AND_ABORT) ? "_AND_ABORT" : "",
|
||||
core_scsi3_pr_dump_type(type),
|
||||
(pr_reg->pr_reg_all_tg_pt) ? 1 : 0);
|
||||
pr_debug("SPC-3 PR [%s] PREEMPT%s from Node: %s%s\n",
|
||||
tfo->get_fabric_name(), (preempt_type == PREEMPT_AND_ABORT) ? "_AND_ABORT" : "",
|
||||
tfo->fabric_name, (preempt_type == PREEMPT_AND_ABORT) ? "_AND_ABORT" : "",
|
||||
nacl->initiatorname, i_buf);
|
||||
/*
|
||||
* For PREEMPT_AND_ABORT, add the preempting reservation's
|
||||
@ -3282,7 +3282,7 @@ core_scsi3_emulate_pro_register_and_move(struct se_cmd *cmd, u64 res_key,
|
||||
" proto_ident: 0x%02x does not match ident: 0x%02x"
|
||||
" from fabric: %s\n", proto_ident,
|
||||
dest_se_tpg->proto_id,
|
||||
dest_tf_ops->get_fabric_name());
|
||||
dest_tf_ops->fabric_name);
|
||||
ret = TCM_INVALID_PARAMETER_LIST;
|
||||
goto out;
|
||||
}
|
||||
@ -3299,7 +3299,7 @@ core_scsi3_emulate_pro_register_and_move(struct se_cmd *cmd, u64 res_key,
|
||||
buf = NULL;
|
||||
|
||||
pr_debug("SPC-3 PR [%s] Extracted initiator %s identifier: %s"
|
||||
" %s\n", dest_tf_ops->get_fabric_name(), (iport_ptr != NULL) ?
|
||||
" %s\n", dest_tf_ops->fabric_name, (iport_ptr != NULL) ?
|
||||
"port" : "device", initiator_str, (iport_ptr != NULL) ?
|
||||
iport_ptr : "");
|
||||
/*
|
||||
@ -3344,7 +3344,7 @@ after_iport_check:
|
||||
|
||||
if (!dest_node_acl) {
|
||||
pr_err("Unable to locate %s dest_node_acl for"
|
||||
" TransportID%s\n", dest_tf_ops->get_fabric_name(),
|
||||
" TransportID%s\n", dest_tf_ops->fabric_name,
|
||||
initiator_str);
|
||||
ret = TCM_INVALID_PARAMETER_LIST;
|
||||
goto out;
|
||||
@ -3360,7 +3360,7 @@ after_iport_check:
|
||||
}
|
||||
|
||||
pr_debug("SPC-3 PR REGISTER_AND_MOVE: Found %s dest_node_acl:"
|
||||
" %s from TransportID\n", dest_tf_ops->get_fabric_name(),
|
||||
" %s from TransportID\n", dest_tf_ops->fabric_name,
|
||||
dest_node_acl->initiatorname);
|
||||
|
||||
/*
|
||||
@ -3370,7 +3370,7 @@ after_iport_check:
|
||||
dest_se_deve = core_get_se_deve_from_rtpi(dest_node_acl, rtpi);
|
||||
if (!dest_se_deve) {
|
||||
pr_err("Unable to locate %s dest_se_deve from RTPI:"
|
||||
" %hu\n", dest_tf_ops->get_fabric_name(), rtpi);
|
||||
" %hu\n", dest_tf_ops->fabric_name, rtpi);
|
||||
ret = TCM_INVALID_PARAMETER_LIST;
|
||||
goto out;
|
||||
}
|
||||
@ -3385,7 +3385,7 @@ after_iport_check:
|
||||
|
||||
pr_debug("SPC-3 PR REGISTER_AND_MOVE: Located %s node %s LUN"
|
||||
" ACL for dest_se_deve->mapped_lun: %llu\n",
|
||||
dest_tf_ops->get_fabric_name(), dest_node_acl->initiatorname,
|
||||
dest_tf_ops->fabric_name, dest_node_acl->initiatorname,
|
||||
dest_se_deve->mapped_lun);
|
||||
|
||||
/*
|
||||
@ -3501,13 +3501,13 @@ after_iport_check:
|
||||
|
||||
pr_debug("SPC-3 PR [%s] Service Action: REGISTER_AND_MOVE"
|
||||
" created new reservation holder TYPE: %s on object RTPI:"
|
||||
" %hu PRGeneration: 0x%08x\n", dest_tf_ops->get_fabric_name(),
|
||||
" %hu PRGeneration: 0x%08x\n", dest_tf_ops->fabric_name,
|
||||
core_scsi3_pr_dump_type(type), rtpi,
|
||||
dest_pr_reg->pr_res_generation);
|
||||
pr_debug("SPC-3 PR Successfully moved reservation from"
|
||||
" %s Fabric Node: %s%s -> %s Fabric Node: %s %s\n",
|
||||
tf_ops->get_fabric_name(), pr_reg_nacl->initiatorname,
|
||||
i_buf, dest_tf_ops->get_fabric_name(),
|
||||
tf_ops->fabric_name, pr_reg_nacl->initiatorname,
|
||||
i_buf, dest_tf_ops->fabric_name,
|
||||
dest_node_acl->initiatorname, (iport_ptr != NULL) ?
|
||||
iport_ptr : "");
|
||||
/*
|
||||
|
@ -612,7 +612,7 @@ static ssize_t target_stat_tgt_port_name_show(struct config_item *item,
|
||||
dev = rcu_dereference(lun->lun_se_dev);
|
||||
if (dev)
|
||||
ret = snprintf(page, PAGE_SIZE, "%sPort#%u\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tpg->se_tpg_tfo->fabric_name,
|
||||
lun->lun_rtpi);
|
||||
rcu_read_unlock();
|
||||
return ret;
|
||||
@ -767,7 +767,7 @@ static ssize_t target_stat_transport_device_show(struct config_item *item,
|
||||
if (dev) {
|
||||
/* scsiTransportType */
|
||||
ret = snprintf(page, PAGE_SIZE, "scsiTransport%s\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name());
|
||||
tpg->se_tpg_tfo->fabric_name);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
return ret;
|
||||
|
@ -163,7 +163,7 @@ void core_tmr_abort_task(
|
||||
continue;
|
||||
|
||||
printk("ABORT_TASK: Found referenced %s task_tag: %llu\n",
|
||||
se_cmd->se_tfo->get_fabric_name(), ref_tag);
|
||||
se_cmd->se_tfo->fabric_name, ref_tag);
|
||||
|
||||
if (!__target_check_io_state(se_cmd, se_sess, 0))
|
||||
continue;
|
||||
@ -398,7 +398,7 @@ int core_tmr_lun_reset(
|
||||
if (tmr_nacl && tmr_tpg) {
|
||||
pr_debug("LUN_RESET: TMR caller fabric: %s"
|
||||
" initiator port %s\n",
|
||||
tmr_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tmr_tpg->se_tpg_tfo->fabric_name,
|
||||
tmr_nacl->initiatorname);
|
||||
}
|
||||
}
|
||||
|
@ -151,7 +151,7 @@ void core_tpg_add_node_to_devs(
|
||||
|
||||
pr_debug("TARGET_CORE[%s]->TPG[%u]_LUN[%llu] - Adding %s"
|
||||
" access for LUN in Demo Mode\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg), lun->unpacked_lun,
|
||||
lun_access_ro ? "READ-ONLY" : "READ-WRITE");
|
||||
|
||||
@ -176,7 +176,7 @@ target_set_nacl_queue_depth(struct se_portal_group *tpg,
|
||||
|
||||
if (!acl->queue_depth) {
|
||||
pr_warn("Queue depth for %s Initiator Node: %s is 0,"
|
||||
"defaulting to 1.\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
"defaulting to 1.\n", tpg->se_tpg_tfo->fabric_name,
|
||||
acl->initiatorname);
|
||||
acl->queue_depth = 1;
|
||||
}
|
||||
@ -227,11 +227,11 @@ static void target_add_node_acl(struct se_node_acl *acl)
|
||||
|
||||
pr_debug("%s_TPG[%hu] - Added %s ACL with TCQ Depth: %d for %s"
|
||||
" Initiator Node: %s\n",
|
||||
tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg),
|
||||
acl->dynamic_node_acl ? "DYNAMIC" : "",
|
||||
acl->queue_depth,
|
||||
tpg->se_tpg_tfo->get_fabric_name(),
|
||||
tpg->se_tpg_tfo->fabric_name,
|
||||
acl->initiatorname);
|
||||
}
|
||||
|
||||
@ -313,7 +313,7 @@ struct se_node_acl *core_tpg_add_initiator_node_acl(
|
||||
if (acl->dynamic_node_acl) {
|
||||
acl->dynamic_node_acl = 0;
|
||||
pr_debug("%s_TPG[%u] - Replacing dynamic ACL"
|
||||
" for %s\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" for %s\n", tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg), initiatorname);
|
||||
mutex_unlock(&tpg->acl_node_mutex);
|
||||
return acl;
|
||||
@ -321,7 +321,7 @@ struct se_node_acl *core_tpg_add_initiator_node_acl(
|
||||
|
||||
pr_err("ACL entry for %s Initiator"
|
||||
" Node %s already exists for TPG %u, ignoring"
|
||||
" request.\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" request.\n", tpg->se_tpg_tfo->fabric_name,
|
||||
initiatorname, tpg->se_tpg_tfo->tpg_get_tag(tpg));
|
||||
mutex_unlock(&tpg->acl_node_mutex);
|
||||
return ERR_PTR(-EEXIST);
|
||||
@ -380,9 +380,9 @@ void core_tpg_del_initiator_node_acl(struct se_node_acl *acl)
|
||||
core_free_device_list_for_node(acl, tpg);
|
||||
|
||||
pr_debug("%s_TPG[%hu] - Deleted ACL with TCQ Depth: %d for %s"
|
||||
" Initiator Node: %s\n", tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" Initiator Node: %s\n", tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg), acl->queue_depth,
|
||||
tpg->se_tpg_tfo->get_fabric_name(), acl->initiatorname);
|
||||
tpg->se_tpg_tfo->fabric_name, acl->initiatorname);
|
||||
|
||||
kfree(acl);
|
||||
}
|
||||
@ -418,7 +418,7 @@ int core_tpg_set_initiator_node_queue_depth(
|
||||
|
||||
pr_debug("Successfully changed queue depth to: %d for Initiator"
|
||||
" Node: %s on %s Target Portal Group: %u\n", acl->queue_depth,
|
||||
acl->initiatorname, tpg->se_tpg_tfo->get_fabric_name(),
|
||||
acl->initiatorname, tpg->se_tpg_tfo->fabric_name,
|
||||
tpg->se_tpg_tfo->tpg_get_tag(tpg));
|
||||
|
||||
return 0;
|
||||
@ -512,7 +512,7 @@ int core_tpg_register(
|
||||
spin_unlock_bh(&tpg_lock);
|
||||
|
||||
pr_debug("TARGET_CORE[%s]: Allocated portal_group for endpoint: %s, "
|
||||
"Proto: %d, Portal Tag: %u\n", se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
"Proto: %d, Portal Tag: %u\n", se_tpg->se_tpg_tfo->fabric_name,
|
||||
se_tpg->se_tpg_tfo->tpg_get_wwn(se_tpg) ?
|
||||
se_tpg->se_tpg_tfo->tpg_get_wwn(se_tpg) : NULL,
|
||||
se_tpg->proto_id, se_tpg->se_tpg_tfo->tpg_get_tag(se_tpg));
|
||||
@ -528,7 +528,7 @@ int core_tpg_deregister(struct se_portal_group *se_tpg)
|
||||
LIST_HEAD(node_list);
|
||||
|
||||
pr_debug("TARGET_CORE[%s]: Deallocating portal_group for endpoint: %s, "
|
||||
"Proto: %d, Portal Tag: %u\n", tfo->get_fabric_name(),
|
||||
"Proto: %d, Portal Tag: %u\n", tfo->fabric_name,
|
||||
tfo->tpg_get_wwn(se_tpg) ? tfo->tpg_get_wwn(se_tpg) : NULL,
|
||||
se_tpg->proto_id, tfo->tpg_get_tag(se_tpg));
|
||||
|
||||
|
@ -397,7 +397,7 @@ void __transport_register_session(
|
||||
list_add_tail(&se_sess->sess_list, &se_tpg->tpg_sess_list);
|
||||
|
||||
pr_debug("TARGET_CORE[%s]: Registered fabric_sess_ptr: %p\n",
|
||||
se_tpg->se_tpg_tfo->get_fabric_name(), se_sess->fabric_sess_ptr);
|
||||
se_tpg->se_tpg_tfo->fabric_name, se_sess->fabric_sess_ptr);
|
||||
}
|
||||
EXPORT_SYMBOL(__transport_register_session);
|
||||
|
||||
@ -602,7 +602,7 @@ void transport_deregister_session(struct se_session *se_sess)
|
||||
spin_unlock_irqrestore(&se_tpg->session_lock, flags);
|
||||
|
||||
pr_debug("TARGET_CORE[%s]: Deregistered fabric_sess\n",
|
||||
se_tpg->se_tpg_tfo->get_fabric_name());
|
||||
se_tpg->se_tpg_tfo->fabric_name);
|
||||
/*
|
||||
* If last kref is dropping now for an explicit NodeACL, awake sleeping
|
||||
* ->acl_free_comp caller to wakeup configfs se_node_acl->acl_group
|
||||
@ -880,7 +880,7 @@ void target_qf_do_work(struct work_struct *work)
|
||||
atomic_dec_mb(&dev->dev_qf_count);
|
||||
|
||||
pr_debug("Processing %s cmd: %p QUEUE_FULL in work queue"
|
||||
" context: %s\n", cmd->se_tfo->get_fabric_name(), cmd,
|
||||
" context: %s\n", cmd->se_tfo->fabric_name, cmd,
|
||||
(cmd->t_state == TRANSPORT_COMPLETE_QF_OK) ? "COMPLETE_OK" :
|
||||
(cmd->t_state == TRANSPORT_COMPLETE_QF_WP) ? "WRITE_PENDING"
|
||||
: "UNKNOWN");
|
||||
@ -1244,7 +1244,7 @@ target_cmd_size_check(struct se_cmd *cmd, unsigned int size)
|
||||
} else if (size != cmd->data_length) {
|
||||
pr_warn_ratelimited("TARGET_CORE[%s]: Expected Transfer Length:"
|
||||
" %u does not match SCSI CDB Length: %u for SAM Opcode:"
|
||||
" 0x%02x\n", cmd->se_tfo->get_fabric_name(),
|
||||
" 0x%02x\n", cmd->se_tfo->fabric_name,
|
||||
cmd->data_length, size, cmd->t_task_cdb[0]);
|
||||
|
||||
if (cmd->data_direction == DMA_TO_DEVICE) {
|
||||
@ -1396,7 +1396,7 @@ target_setup_cmd_from_cdb(struct se_cmd *cmd, unsigned char *cdb)
|
||||
ret = dev->transport->parse_cdb(cmd);
|
||||
if (ret == TCM_UNSUPPORTED_SCSI_OPCODE)
|
||||
pr_warn_ratelimited("%s/%s: Unsupported SCSI Opcode 0x%02x, sending CHECK_CONDITION.\n",
|
||||
cmd->se_tfo->get_fabric_name(),
|
||||
cmd->se_tfo->fabric_name,
|
||||
cmd->se_sess->se_node_acl->initiatorname,
|
||||
cmd->t_task_cdb[0]);
|
||||
if (ret)
|
||||
|
@ -266,7 +266,7 @@ bool core_scsi3_ua_for_check_condition(struct se_cmd *cmd, u8 *key, u8 *asc,
|
||||
pr_debug("[%s]: %s UNIT ATTENTION condition with"
|
||||
" INTLCK_CTRL: %d, mapped LUN: %llu, got CDB: 0x%02x"
|
||||
" reported ASC: 0x%02x, ASCQ: 0x%02x\n",
|
||||
nacl->se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
nacl->se_tpg->se_tpg_tfo->fabric_name,
|
||||
(dev->dev_attrib.emulate_ua_intlck_ctrl != 0) ? "Reporting" :
|
||||
"Releasing", dev->dev_attrib.emulate_ua_intlck_ctrl,
|
||||
cmd->orig_fe_lun, cmd->t_task_cdb[0], *asc, *ascq);
|
||||
@ -327,7 +327,7 @@ int core_scsi3_ua_clear_for_request_sense(
|
||||
|
||||
pr_debug("[%s]: Released UNIT ATTENTION condition, mapped"
|
||||
" LUN: %llu, got REQUEST_SENSE reported ASC: 0x%02x,"
|
||||
" ASCQ: 0x%02x\n", nacl->se_tpg->se_tpg_tfo->get_fabric_name(),
|
||||
" ASCQ: 0x%02x\n", nacl->se_tpg->se_tpg_tfo->fabric_name,
|
||||
cmd->orig_fe_lun, *asc, *ascq);
|
||||
|
||||
return (head) ? -EPERM : 0;
|
||||
|
@ -399,11 +399,6 @@ struct se_portal_group xcopy_pt_tpg;
|
||||
static struct se_session xcopy_pt_sess;
|
||||
static struct se_node_acl xcopy_pt_nacl;
|
||||
|
||||
static char *xcopy_pt_get_fabric_name(void)
|
||||
{
|
||||
return "xcopy-pt";
|
||||
}
|
||||
|
||||
static int xcopy_pt_get_cmd_state(struct se_cmd *se_cmd)
|
||||
{
|
||||
return 0;
|
||||
@ -463,7 +458,7 @@ static int xcopy_pt_queue_status(struct se_cmd *se_cmd)
|
||||
}
|
||||
|
||||
static const struct target_core_fabric_ops xcopy_pt_tfo = {
|
||||
.get_fabric_name = xcopy_pt_get_fabric_name,
|
||||
.fabric_name = "xcopy-pt",
|
||||
.get_cmd_state = xcopy_pt_get_cmd_state,
|
||||
.release_cmd = xcopy_pt_release_cmd,
|
||||
.check_stop_free = xcopy_pt_check_stop_free,
|
||||
|
@ -392,11 +392,6 @@ static inline struct ft_tpg *ft_tpg(struct se_portal_group *se_tpg)
|
||||
return container_of(se_tpg, struct ft_tpg, se_tpg);
|
||||
}
|
||||
|
||||
static char *ft_get_fabric_name(void)
|
||||
{
|
||||
return "fc";
|
||||
}
|
||||
|
||||
static char *ft_get_fabric_wwn(struct se_portal_group *se_tpg)
|
||||
{
|
||||
return ft_tpg(se_tpg)->lport_wwn->name;
|
||||
@ -428,8 +423,8 @@ static u32 ft_tpg_get_inst_index(struct se_portal_group *se_tpg)
|
||||
static const struct target_core_fabric_ops ft_fabric_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "fc",
|
||||
.fabric_name = "fc",
|
||||
.node_acl_size = sizeof(struct ft_node_acl),
|
||||
.get_fabric_name = ft_get_fabric_name,
|
||||
.tpg_get_wwn = ft_get_fabric_wwn,
|
||||
.tpg_get_tag = ft_get_tag,
|
||||
.tpg_check_demo_mode = ft_check_false,
|
||||
|
@ -1256,11 +1256,6 @@ static int usbg_check_false(struct se_portal_group *se_tpg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *usbg_get_fabric_name(void)
|
||||
{
|
||||
return "usb_gadget";
|
||||
}
|
||||
|
||||
static char *usbg_get_fabric_wwn(struct se_portal_group *se_tpg)
|
||||
{
|
||||
struct usbg_tpg *tpg = container_of(se_tpg,
|
||||
@ -1719,7 +1714,7 @@ static int usbg_check_stop_free(struct se_cmd *se_cmd)
|
||||
static const struct target_core_fabric_ops usbg_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "usb_gadget",
|
||||
.get_fabric_name = usbg_get_fabric_name,
|
||||
.fabric_name = "usb_gadget",
|
||||
.tpg_get_wwn = usbg_get_fabric_wwn,
|
||||
.tpg_get_tag = usbg_get_tag,
|
||||
.tpg_check_demo_mode = usbg_check_true,
|
||||
|
@ -285,11 +285,6 @@ static int vhost_scsi_check_false(struct se_portal_group *se_tpg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *vhost_scsi_get_fabric_name(void)
|
||||
{
|
||||
return "vhost";
|
||||
}
|
||||
|
||||
static char *vhost_scsi_get_fabric_wwn(struct se_portal_group *se_tpg)
|
||||
{
|
||||
struct vhost_scsi_tpg *tpg = container_of(se_tpg,
|
||||
@ -2290,7 +2285,7 @@ static struct configfs_attribute *vhost_scsi_wwn_attrs[] = {
|
||||
static const struct target_core_fabric_ops vhost_scsi_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "vhost",
|
||||
.get_fabric_name = vhost_scsi_get_fabric_name,
|
||||
.fabric_name = "vhost",
|
||||
.tpg_get_wwn = vhost_scsi_get_fabric_wwn,
|
||||
.tpg_get_tag = vhost_scsi_get_tpgt,
|
||||
.tpg_check_demo_mode = vhost_scsi_check_true,
|
||||
|
@ -1712,11 +1712,6 @@ static struct configfs_attribute *scsiback_wwn_attrs[] = {
|
||||
NULL,
|
||||
};
|
||||
|
||||
static char *scsiback_get_fabric_name(void)
|
||||
{
|
||||
return "xen-pvscsi";
|
||||
}
|
||||
|
||||
static int scsiback_port_link(struct se_portal_group *se_tpg,
|
||||
struct se_lun *lun)
|
||||
{
|
||||
@ -1811,7 +1806,7 @@ static int scsiback_check_false(struct se_portal_group *se_tpg)
|
||||
static const struct target_core_fabric_ops scsiback_ops = {
|
||||
.module = THIS_MODULE,
|
||||
.name = "xen-pvscsi",
|
||||
.get_fabric_name = scsiback_get_fabric_name,
|
||||
.fabric_name = "xen-pvscsi",
|
||||
.tpg_get_wwn = scsiback_get_fabric_wwn,
|
||||
.tpg_get_tag = scsiback_get_tag,
|
||||
.tpg_check_demo_mode = scsiback_check_true,
|
||||
|
@ -9,6 +9,11 @@
|
||||
struct target_core_fabric_ops {
|
||||
struct module *module;
|
||||
const char *name;
|
||||
/*
|
||||
* fabric_name is used for the ALUA state path and is stored on disk
|
||||
* with PR state.
|
||||
*/
|
||||
const char *fabric_name;
|
||||
size_t node_acl_size;
|
||||
/*
|
||||
* Limits number of scatterlist entries per SCF_SCSI_DATA_CDB payload.
|
||||
@ -23,7 +28,6 @@ struct target_core_fabric_ops {
|
||||
* XXX: Currently assumes single PAGE_SIZE per scatterlist entry
|
||||
*/
|
||||
u32 max_data_sg_nents;
|
||||
char *(*get_fabric_name)(void);
|
||||
char *(*tpg_get_wwn)(struct se_portal_group *);
|
||||
u16 (*tpg_get_tag)(struct se_portal_group *);
|
||||
u32 (*tpg_get_default_depth)(struct se_portal_group *);
|
||||
|
Loading…
Reference in New Issue
Block a user