Loading include/spdk/scsi.h +4 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading lib/iscsi/conn.c +3 −3 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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; } } Loading lib/iscsi/iscsi.c +5 −5 Original line number Diff line number Diff line Loading @@ -1613,8 +1613,7 @@ 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, 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; Loading @@ -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; } Loading Loading @@ -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); } Loading Loading @@ -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", Loading lib/iscsi/iscsi.h +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading lib/scsi/port.c +39 −0 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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; } Loading
include/spdk/scsi.h +4 −8 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading
lib/iscsi/conn.c +3 −3 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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; } } Loading
lib/iscsi/iscsi.c +5 −5 Original line number Diff line number Diff line Loading @@ -1613,8 +1613,7 @@ 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, 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; Loading @@ -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; } Loading Loading @@ -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); } Loading Loading @@ -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", Loading
lib/iscsi/iscsi.h +1 −1 Original line number Diff line number Diff line Loading @@ -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; Loading
lib/scsi/port.c +39 −0 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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; }