diff --git a/include/spdk/nvmf.h b/include/spdk/nvmf.h index 4784f7d93..a9e9ad9da 100644 --- a/include/spdk/nvmf.h +++ b/include/spdk/nvmf.h @@ -105,7 +105,7 @@ struct spdk_nvmf_ctrlr_ops { /** * Poll for completions. */ - void (*poll_for_completions)(struct spdk_nvmf_session *session); + void (*poll_for_completions)(struct spdk_nvmf_subsystem *subsystem); /** * Detach the controller. diff --git a/lib/nvmf/direct.c b/lib/nvmf/direct.c index 7faa3b431..61a54b979 100644 --- a/lib/nvmf/direct.c +++ b/lib/nvmf/direct.c @@ -51,10 +51,10 @@ nvmf_direct_ctrlr_get_data(struct spdk_nvmf_session *session) } static void -nvmf_direct_ctrlr_poll_for_completions(struct spdk_nvmf_session *session) +nvmf_direct_ctrlr_poll_for_completions(struct spdk_nvmf_subsystem *subsystem) { - spdk_nvme_ctrlr_process_admin_completions(session->subsys->dev.direct.ctrlr); - spdk_nvme_qpair_process_completions(session->subsys->dev.direct.io_qpair, 0); + spdk_nvme_ctrlr_process_admin_completions(subsystem->dev.direct.ctrlr); + spdk_nvme_qpair_process_completions(subsystem->dev.direct.io_qpair, 0); } static void diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index c295d0d33..5c12a874d 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -132,12 +132,12 @@ spdk_nvmf_subsystem_poll(struct spdk_nvmf_subsystem *subsystem) { struct spdk_nvmf_session *session; - TAILQ_FOREACH(session, &subsystem->sessions, link) { - /* For NVMe subsystems, check the backing physical device for completions. */ - if (subsystem->subtype == SPDK_NVMF_SUBTYPE_NVME) { - session->subsys->ops->poll_for_completions(session); - } + /* For NVMe subsystems, check the backing physical device for completions. */ + if (subsystem->subtype == SPDK_NVMF_SUBTYPE_NVME) { + subsystem->ops->poll_for_completions(subsystem); + } + TAILQ_FOREACH(session, &subsystem->sessions, link) { /* For each connection in the session, check for completions */ spdk_nvmf_session_poll(session); } diff --git a/lib/nvmf/virtual.c b/lib/nvmf/virtual.c index 11f2377ac..b15f76dc8 100644 --- a/lib/nvmf/virtual.c +++ b/lib/nvmf/virtual.c @@ -112,7 +112,7 @@ nvmf_virtual_ctrlr_get_data(struct spdk_nvmf_session *session) } static void -nvmf_virtual_ctrlr_poll_for_completions(struct spdk_nvmf_session *session) +nvmf_virtual_ctrlr_poll_for_completions(struct spdk_nvmf_subsystem *subsystem) { return; }