nvmf/vfio-user: move up the code to before the caller
Just code movement for the coming patch. Change-Id: I7e844bc27a037e086796f9659351f20cdbb517fb Signed-off-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7333 Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
a43a0b7798
commit
342f9b985f
@ -1810,6 +1810,51 @@ nvmf_vfio_user_poll_group_destroy(struct spdk_nvmf_transport_poll_group *group)
|
||||
free(vu_group);
|
||||
}
|
||||
|
||||
static void
|
||||
vfio_user_qpair_disconnect_cb(void *ctx)
|
||||
{
|
||||
struct nvmf_vfio_user_endpoint *endpoint = ctx;
|
||||
struct nvmf_vfio_user_ctrlr *ctrlr;
|
||||
|
||||
pthread_mutex_lock(&endpoint->lock);
|
||||
ctrlr = endpoint->ctrlr;
|
||||
if (!ctrlr) {
|
||||
pthread_mutex_unlock(&endpoint->lock);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ctrlr->num_connected_qps) {
|
||||
destroy_ctrlr(ctrlr);
|
||||
pthread_mutex_unlock(&endpoint->lock);
|
||||
return;
|
||||
}
|
||||
pthread_mutex_unlock(&endpoint->lock);
|
||||
}
|
||||
|
||||
static int
|
||||
vfio_user_stop_ctrlr(struct nvmf_vfio_user_ctrlr *ctrlr)
|
||||
{
|
||||
uint32_t i;
|
||||
struct nvmf_vfio_user_qpair *qpair;
|
||||
struct nvmf_vfio_user_endpoint *endpoint;
|
||||
|
||||
SPDK_DEBUGLOG(nvmf_vfio, "%s stop processing\n", ctrlr_id(ctrlr));
|
||||
|
||||
ctrlr->ready = false;
|
||||
endpoint = ctrlr->endpoint;
|
||||
assert(endpoint != NULL);
|
||||
|
||||
for (i = 0; i < NVMF_VFIO_USER_DEFAULT_MAX_QPAIRS_PER_CTRLR; i++) {
|
||||
qpair = ctrlr->qp[i];
|
||||
if (qpair == NULL) {
|
||||
continue;
|
||||
}
|
||||
spdk_nvmf_qpair_disconnect(&qpair->qpair, vfio_user_qpair_disconnect_cb, endpoint);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
handle_queue_connect_rsp(struct nvmf_vfio_user_req *req, void *cb_arg)
|
||||
{
|
||||
@ -2173,51 +2218,6 @@ handle_cmd_req(struct nvmf_vfio_user_ctrlr *ctrlr, struct spdk_nvme_cmd *cmd,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
vfio_user_qpair_disconnect_cb(void *ctx)
|
||||
{
|
||||
struct nvmf_vfio_user_endpoint *endpoint = ctx;
|
||||
struct nvmf_vfio_user_ctrlr *ctrlr;
|
||||
|
||||
pthread_mutex_lock(&endpoint->lock);
|
||||
ctrlr = endpoint->ctrlr;
|
||||
if (!ctrlr) {
|
||||
pthread_mutex_unlock(&endpoint->lock);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!ctrlr->num_connected_qps) {
|
||||
destroy_ctrlr(ctrlr);
|
||||
pthread_mutex_unlock(&endpoint->lock);
|
||||
return;
|
||||
}
|
||||
pthread_mutex_unlock(&endpoint->lock);
|
||||
}
|
||||
|
||||
static int
|
||||
vfio_user_stop_ctrlr(struct nvmf_vfio_user_ctrlr *ctrlr)
|
||||
{
|
||||
uint32_t i;
|
||||
struct nvmf_vfio_user_qpair *qpair;
|
||||
struct nvmf_vfio_user_endpoint *endpoint;
|
||||
|
||||
SPDK_DEBUGLOG(nvmf_vfio, "%s stop processing\n", ctrlr_id(ctrlr));
|
||||
|
||||
ctrlr->ready = false;
|
||||
endpoint = ctrlr->endpoint;
|
||||
assert(endpoint != NULL);
|
||||
|
||||
for (i = 0; i < NVMF_VFIO_USER_DEFAULT_MAX_QPAIRS_PER_CTRLR; i++) {
|
||||
qpair = ctrlr->qp[i];
|
||||
if (qpair == NULL) {
|
||||
continue;
|
||||
}
|
||||
spdk_nvmf_qpair_disconnect(&qpair->qpair, vfio_user_qpair_disconnect_cb, endpoint);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
nvmf_vfio_user_ctrlr_poll(struct nvmf_vfio_user_ctrlr *ctrlr)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user