From 200217a47e3795d83538e5df4fd90e3e4214f9a1 Mon Sep 17 00:00:00 2001 From: GangCao Date: Sat, 4 Feb 2017 12:33:30 +0800 Subject: [PATCH] nvmf: poll the NVMe subsystem once under more sessions case Change-Id: Ie13a787eb0ff3b6b95fb6796871ac0b747b992ad Signed-off-by: GangCao --- include/spdk/nvmf.h | 2 +- lib/nvmf/direct.c | 6 +++--- lib/nvmf/subsystem.c | 10 +++++----- lib/nvmf/virtual.c | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) 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; }