diff --git a/lib/nvmf/vfio_user.c b/lib/nvmf/vfio_user.c index 7fbd650e1..9e921d550 100644 --- a/lib/nvmf/vfio_user.c +++ b/lib/nvmf/vfio_user.c @@ -1811,10 +1811,6 @@ handle_queue_connect_rsp(struct nvmf_vfio_user_req *req, void *cb_arg) assert(qpair != NULL); assert(req != NULL); - vu_group = SPDK_CONTAINEROF(qpair->group, struct nvmf_vfio_user_poll_group, group); - TAILQ_INSERT_TAIL(&vu_group->qps, qpair, link); - qpair->state = VFIO_USER_QPAIR_ACTIVE; - ctrlr = qpair->ctrlr; assert(ctrlr != NULL); @@ -1825,6 +1821,10 @@ handle_queue_connect_rsp(struct nvmf_vfio_user_req *req, void *cb_arg) return -1; } + vu_group = SPDK_CONTAINEROF(qpair->group, struct nvmf_vfio_user_poll_group, group); + TAILQ_INSERT_TAIL(&vu_group->qps, qpair, link); + qpair->state = VFIO_USER_QPAIR_ACTIVE; + if (nvmf_qpair_is_admin_queue(&qpair->qpair)) { ctrlr->cntlid = qpair->qpair.ctrlr->cntlid; ctrlr->ready = true;