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:
parent
50947d5557
commit
39b386a5c5
@ -1510,6 +1510,17 @@ spdk_nvmf_rdma_poll(struct spdk_nvmf_conn *conn)
|
|||||||
return count;
|
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 = {
|
const struct spdk_nvmf_transport spdk_nvmf_transport_rdma = {
|
||||||
.name = "rdma",
|
.name = "rdma",
|
||||||
.transport_init = spdk_nvmf_rdma_init,
|
.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_fini = spdk_nvmf_rdma_close_conn,
|
||||||
.conn_poll = spdk_nvmf_rdma_poll,
|
.conn_poll = spdk_nvmf_rdma_poll,
|
||||||
|
.conn_is_idle = spdk_nvmf_rdma_conn_is_idle,
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -115,6 +115,11 @@ struct spdk_nvmf_transport {
|
|||||||
* Poll a connection for events.
|
* Poll a connection for events.
|
||||||
*/
|
*/
|
||||||
int (*conn_poll)(struct spdk_nvmf_conn *conn);
|
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);
|
int spdk_nvmf_transport_init(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user