scsi: make spdk_scsi_port definition private

Change-Id: Ib2c17a4dd4ce680161be92f76b831df792f9ff4d
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
Daniel Verkamp 2017-05-03 12:41:55 -07:00 committed by Ben Walker
parent 2eb9a35323
commit 2990f869a1
8 changed files with 66 additions and 24 deletions

View File

@ -163,12 +163,7 @@ struct spdk_scsi_task {
TAILQ_HEAD(subtask_list, spdk_scsi_task) subtask_list;
};
struct spdk_scsi_port {
struct spdk_scsi_dev *dev;
uint64_t id;
uint16_t index;
char name[SPDK_SCSI_PORT_MAX_NAME_LENGTH];
};
struct spdk_scsi_port;
struct spdk_scsi_dev;
@ -221,8 +216,9 @@ struct spdk_scsi_dev *spdk_scsi_dev_construct(const char *name,
void spdk_scsi_dev_delete_lun(struct spdk_scsi_dev *dev, struct spdk_scsi_lun *lun);
int spdk_scsi_port_construct(struct spdk_scsi_port *port, uint64_t id,
uint16_t index, const char *name);
struct spdk_scsi_port *spdk_scsi_port_create(uint64_t id, uint16_t index, const char *name);
void spdk_scsi_port_free(struct spdk_scsi_port **pport);
const char *spdk_scsi_port_get_name(const struct spdk_scsi_port *port);
void spdk_scsi_task_construct(struct spdk_scsi_task *task, uint32_t *owner_task_ctr,

View File

@ -772,7 +772,7 @@ spdk_iscsi_drop_conns(struct spdk_iscsi_conn *conn, const char *conn_match,
continue;
xconn_match =
drop_all ? xconn->initiator_name : xconn->initiator_port->name;
drop_all ? xconn->initiator_name : spdk_scsi_port_get_name(xconn->initiator_port);
if (!strcasecmp(conn_match, xconn_match) &&
conn->target == xconn->target) {
@ -1206,8 +1206,8 @@ spdk_iscsi_conn_handle_incoming_pdus(struct spdk_iscsi_conn *conn)
spdk_put_pdu(pdu);
if (rc != 0) {
SPDK_ERRLOG("spdk_iscsi_execute() fatal error on %s(%s)\n",
conn->target_port != NULL ? conn->target_port->name : "NULL",
conn->initiator_port != NULL ? conn->initiator_port->name : "NULL");
conn->target_port != NULL ? spdk_scsi_port_get_name(conn->target_port) : "NULL",
conn->initiator_port != NULL ? spdk_scsi_port_get_name(conn->initiator_port) : "NULL");
return rc;
}
}

View File

@ -1613,9 +1613,8 @@ spdk_iscsi_op_login_set_conn_info(struct spdk_iscsi_conn *conn,
/* initialize parameters */
conn->StatSN = from_be32(&rsph->stat_sn);
spdk_scsi_port_construct(&conn->sess->initiator_port,
spdk_iscsi_get_isid(rsph->isid), 0,
initiator_port_name);
conn->sess->initiator_port = spdk_scsi_port_create(spdk_iscsi_get_isid(rsph->isid), 0,
initiator_port_name);
conn->sess->isid = spdk_iscsi_get_isid(rsph->isid);
conn->sess->target = target;
@ -1633,7 +1632,7 @@ spdk_iscsi_op_login_set_conn_info(struct spdk_iscsi_conn *conn,
conn->sess->MaxCmdSN = rsp_pdu->cmd_sn + conn->sess->queue_depth - 1;
}
conn->initiator_port = &conn->sess->initiator_port;
conn->initiator_port = conn->sess->initiator_port;
return 0;
}
@ -4437,6 +4436,7 @@ void spdk_free_sess(struct spdk_iscsi_sess *sess)
sess->session_type = SESSION_TYPE_INVALID;
spdk_iscsi_param_free(sess->params);
free(sess->conns);
spdk_scsi_port_free(&sess->initiator_port);
rte_mempool_put(g_spdk_iscsi.session_pool, (void *)sess);
}
@ -4632,7 +4632,7 @@ spdk_append_iscsi_sess(struct spdk_iscsi_conn *conn,
return -1;
}
if ((conn->portal->group->tag != sess->tag) ||
(strcasecmp(initiator_port_name, sess->initiator_port.name) != 0) ||
(strcasecmp(initiator_port_name, spdk_scsi_port_get_name(sess->initiator_port)) != 0) ||
(conn->target != sess->target)) {
/* no match */
SPDK_ERRLOG("no MCS session for init port name=%s, tsih=%d, cid=%d\n",

View File

@ -232,7 +232,7 @@ struct spdk_iscsi_sess {
uint32_t connections;
struct spdk_iscsi_conn **conns;
struct spdk_scsi_port initiator_port;
struct spdk_scsi_port *initiator_port;
int tag;
uint64_t isid;

View File

@ -34,6 +34,39 @@
#include "scsi_internal.h"
struct spdk_scsi_port *
spdk_scsi_port_create(uint64_t id, uint16_t index, const char *name)
{
struct spdk_scsi_port *port;
port = calloc(1, sizeof(struct spdk_scsi_port));
if (!port) {
return NULL;
}
if (spdk_scsi_port_construct(port, id, index, name) != 0) {
spdk_scsi_port_free(&port);
return NULL;
}
return port;
}
void
spdk_scsi_port_free(struct spdk_scsi_port **pport)
{
struct spdk_scsi_port *port;
if (!pport) {
return;
}
port = *pport;
*pport = NULL;
free(port);
}
int
spdk_scsi_port_construct(struct spdk_scsi_port *port, uint64_t id, uint16_t index,
const char *name)
@ -48,3 +81,9 @@ spdk_scsi_port_construct(struct spdk_scsi_port *port, uint64_t id, uint16_t inde
snprintf(port->name, sizeof(port->name), "%s", name);
return 0;
}
const char *
spdk_scsi_port_get_name(const struct spdk_scsi_port *port)
{
return port->name;
}

View File

@ -62,6 +62,13 @@ enum {
SPDK_SCSI_TASK_PENDING,
};
struct spdk_scsi_port {
struct spdk_scsi_dev *dev;
uint64_t id;
uint16_t index;
char name[SPDK_SCSI_PORT_MAX_NAME_LENGTH];
};
struct spdk_scsi_dev {
int id;
int is_allocated;
@ -148,6 +155,9 @@ struct spdk_scsi_lun *spdk_lun_db_get_lun(const char *lun_name);
struct spdk_scsi_dev *spdk_scsi_dev_get_list(void);
int spdk_scsi_port_construct(struct spdk_scsi_port *port, uint64_t id,
uint16_t index, const char *name);
int spdk_bdev_scsi_execute(struct spdk_bdev *bdev, struct spdk_scsi_task *task);
int spdk_bdev_scsi_reset(struct spdk_bdev *bdev, struct spdk_scsi_task *task);

View File

@ -7,6 +7,8 @@
#include "spdk_internal/log.h"
#include "scsi/scsi_internal.h"
SPDK_LOG_REGISTER_TRACE_FLAG("iscsi", SPDK_TRACE_ISCSI)
struct spdk_iscsi_task *
@ -77,13 +79,6 @@ spdk_scsi_dev_find_port_by_id(struct spdk_scsi_dev *dev, uint64_t id)
return NULL;
}
int
spdk_scsi_port_construct(struct spdk_scsi_port *port, uint64_t id, uint16_t index,
const char *name)
{
return 0;
}
void
spdk_scsi_dev_queue_mgmt_task(struct spdk_scsi_dev *dev,
struct spdk_scsi_task *task)

View File

@ -42,7 +42,9 @@ CFLAGS += -I$(SPDK_ROOT_DIR)/test
CFLAGS += -I$(SPDK_ROOT_DIR)/lib
LIBS += $(SPDK_LIB_LINKER_ARGS) $(ENV_LINKER_ARGS)
LIBS += -lcunit -lcrypto
SCSI_OBJS = port
ISCSI_OBJS = iscsi crc32c md5 param
OBJS += $(SCSI_OBJS:%=$(SPDK_ROOT_DIR)/lib/scsi/%.o)
OBJS += $(ISCSI_OBJS:%=$(SPDK_ROOT_DIR)/lib/iscsi/%.o)
APP = pdu