nvmf: Add interface for transport layer to check if one connection is idle.

Change-Id: I094d5adb85af8279c9823528f40190fa28801b7b
Signed-off-by: Cunyin Chang <cunyin.chang@intel.com>
This commit is contained in:
Cunyin Chang 2017-03-02 13:20:49 +08:00 committed by Daniel Verkamp
parent 50947d5557
commit 39b386a5c5
2 changed files with 17 additions and 1 deletions

View File

@ -1510,6 +1510,17 @@ spdk_nvmf_rdma_poll(struct spdk_nvmf_conn *conn)
return count;
}
static bool
spdk_nvmf_rdma_conn_is_idle(struct spdk_nvmf_conn *conn)
{
struct spdk_nvmf_rdma_conn *rdma_conn = get_rdma_conn(conn);
if (rdma_conn->cur_queue_depth == 0 && rdma_conn->cur_rdma_rw_depth == 0) {
return true;
}
return false;
}
const struct spdk_nvmf_transport spdk_nvmf_transport_rdma = {
.name = "rdma",
.transport_init = spdk_nvmf_rdma_init,
@ -1530,7 +1541,7 @@ const struct spdk_nvmf_transport spdk_nvmf_transport_rdma = {
.conn_fini = spdk_nvmf_rdma_close_conn,
.conn_poll = spdk_nvmf_rdma_poll,
.conn_is_idle = spdk_nvmf_rdma_conn_is_idle,
};

View File

@ -115,6 +115,11 @@ struct spdk_nvmf_transport {
* Poll a connection for events.
*/
int (*conn_poll)(struct spdk_nvmf_conn *conn);
/*
* True if the conn has no pending IO.
*/
bool (*conn_is_idle)(struct spdk_nvmf_conn *conn);
};
int spdk_nvmf_transport_init(void);