nvmf: update nvmf_disconnect to spdk_nvmf_session_disconnect
1 Rename this function and make it more meaninful, since we have spdk_nvmf_session_connect which is used to link a connection to the session 2 split spdk_nvmf_session_destruct. Change-Id: I150df7ccdf4de3428d8cecbb286d5f7944510a8c Signed-off-by: Ziye Yang <ziye.yang@intel.com>
This commit is contained in:
parent
b3ca958328
commit
6a6ef0d7e0
@ -172,7 +172,7 @@ disconnect_event(struct spdk_event *event)
|
|||||||
{
|
{
|
||||||
struct spdk_nvmf_conn *conn = spdk_event_get_arg1(event);
|
struct spdk_nvmf_conn *conn = spdk_event_get_arg1(event);
|
||||||
|
|
||||||
spdk_nvmf_handle_disconnect(conn);
|
spdk_nvmf_session_disconnect(conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -156,11 +156,16 @@ nvmf_init_nvme_session_properties(struct nvmf_session *session)
|
|||||||
session->vcprop.csts.raw);
|
session->vcprop.csts.raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void session_destruct(struct nvmf_session *session)
|
||||||
|
{
|
||||||
|
session->subsys->session = NULL;
|
||||||
|
session->transport->session_fini(session);
|
||||||
|
free(session);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
spdk_nvmf_session_destruct(struct nvmf_session *session)
|
spdk_nvmf_session_destruct(struct nvmf_session *session)
|
||||||
{
|
{
|
||||||
session->subsys->session = NULL;
|
|
||||||
|
|
||||||
while (!TAILQ_EMPTY(&session->connections)) {
|
while (!TAILQ_EMPTY(&session->connections)) {
|
||||||
struct spdk_nvmf_conn *conn = TAILQ_FIRST(&session->connections);
|
struct spdk_nvmf_conn *conn = TAILQ_FIRST(&session->connections);
|
||||||
|
|
||||||
@ -169,9 +174,7 @@ spdk_nvmf_session_destruct(struct nvmf_session *session)
|
|||||||
conn->transport->conn_fini(conn);
|
conn->transport->conn_fini(conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
session->transport->session_fini(session);
|
session_destruct(session);
|
||||||
|
|
||||||
free(session);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -327,16 +330,17 @@ spdk_nvmf_session_connect(struct spdk_nvmf_conn *conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
spdk_nvmf_handle_disconnect(struct spdk_nvmf_conn *conn)
|
spdk_nvmf_session_disconnect(struct spdk_nvmf_conn *conn)
|
||||||
{
|
{
|
||||||
struct nvmf_session *session = conn->sess;
|
struct nvmf_session *session = conn->sess;
|
||||||
|
|
||||||
|
assert(session != NULL);
|
||||||
session->num_connections--;
|
session->num_connections--;
|
||||||
TAILQ_REMOVE(&session->connections, conn, link);
|
TAILQ_REMOVE(&session->connections, conn, link);
|
||||||
conn->transport->conn_fini(conn);
|
conn->transport->conn_fini(conn);
|
||||||
|
|
||||||
if (session->num_connections == 0) {
|
if (session->num_connections == 0) {
|
||||||
spdk_nvmf_session_destruct(session);
|
session_destruct(session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -556,7 +560,7 @@ spdk_nvmf_session_poll(struct nvmf_session *session)
|
|||||||
TAILQ_FOREACH_SAFE(conn, &session->connections, link, tmp) {
|
TAILQ_FOREACH_SAFE(conn, &session->connections, link, tmp) {
|
||||||
if (conn->transport->conn_poll(conn) < 0) {
|
if (conn->transport->conn_poll(conn) < 0) {
|
||||||
SPDK_ERRLOG("Transport poll failed for conn %p; closing connection\n", conn);
|
SPDK_ERRLOG("Transport poll failed for conn %p; closing connection\n", conn);
|
||||||
spdk_nvmf_handle_disconnect(conn);
|
spdk_nvmf_session_disconnect(conn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,8 @@ void spdk_nvmf_session_connect(struct spdk_nvmf_conn *conn,
|
|||||||
struct spdk_nvmf_fabric_connect_data *data,
|
struct spdk_nvmf_fabric_connect_data *data,
|
||||||
struct spdk_nvmf_fabric_connect_rsp *rsp);
|
struct spdk_nvmf_fabric_connect_rsp *rsp);
|
||||||
|
|
||||||
void spdk_nvmf_handle_disconnect(struct spdk_nvmf_conn *conn);
|
void
|
||||||
|
spdk_nvmf_session_disconnect(struct spdk_nvmf_conn *conn);
|
||||||
|
|
||||||
void
|
void
|
||||||
nvmf_property_get(struct nvmf_session *session,
|
nvmf_property_get(struct nvmf_session *session,
|
||||||
|
@ -964,15 +964,11 @@ nvmf_test_disconnect(void)
|
|||||||
struct spdk_nvmf_subsystem *subsystem;
|
struct spdk_nvmf_subsystem *subsystem;
|
||||||
|
|
||||||
sess = nvmf_find_session_by_id("subsystem1", SS_SC_CNTLID);
|
sess = nvmf_find_session_by_id("subsystem1", SS_SC_CNTLID);
|
||||||
/* delete non-exist connection */
|
|
||||||
nvmf_disconnect((void *)6, sess);
|
|
||||||
/* we have two connections admin and io */
|
|
||||||
CU_ASSERT_EQUAL(sess->num_connections, 2);
|
|
||||||
/* delete IO connection */
|
/* delete IO connection */
|
||||||
nvmf_disconnect((void *)fabric_conn_IO, sess);
|
spdk_nvmf_session_disconnect((void *)fabric_conn_IO);
|
||||||
CU_ASSERT_EQUAL(sess->num_connections, 1);
|
CU_ASSERT_EQUAL(sess->num_connections, 1);
|
||||||
/* delete admin connection */
|
/* delete admin connection */
|
||||||
nvmf_disconnect((void *)fabric_conn_admin, sess);
|
spdk_nvmf_session_disconnect((void *)fabric_conn_admin);
|
||||||
subsystem = nvmf_find_subsystem("subsystem1");
|
subsystem = nvmf_find_subsystem("subsystem1");
|
||||||
CU_ASSERT_EQUAL(subsystem->num_sessions, 0);
|
CU_ASSERT_EQUAL(subsystem->num_sessions, 0);
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,7 @@ struct spdk_nvme_ns *spdk_nvme_ctrlr_get_ns(struct spdk_nvme_ctrlr *ctrlr, uint3
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
spdk_nvmf_handle_disconnect(struct spdk_nvmf_conn *conn)
|
spdk_nvmf_session_disconnect(struct spdk_nvmf_conn *conn)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user