nvmf: use iterator APIs in nvmf_tgt_create_poll_group()
Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I4d9a5dd4655edb8315503e7551aec1926d1cc017 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17959 Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
This commit is contained in:
parent
8d2e6b6711
commit
516639cf37
@ -170,8 +170,8 @@ nvmf_tgt_create_poll_group(void *io_device, void *ctx_buf)
|
|||||||
struct spdk_nvmf_tgt *tgt = io_device;
|
struct spdk_nvmf_tgt *tgt = io_device;
|
||||||
struct spdk_nvmf_poll_group *group = ctx_buf;
|
struct spdk_nvmf_poll_group *group = ctx_buf;
|
||||||
struct spdk_nvmf_transport *transport;
|
struct spdk_nvmf_transport *transport;
|
||||||
|
struct spdk_nvmf_subsystem *subsystem;
|
||||||
struct spdk_thread *thread = spdk_get_thread();
|
struct spdk_thread *thread = spdk_get_thread();
|
||||||
uint32_t sid;
|
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
group->tgt = tgt;
|
group->tgt = tgt;
|
||||||
@ -199,14 +199,9 @@ nvmf_tgt_create_poll_group(void *io_device, void *ctx_buf)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (sid = 0; sid < tgt->max_subsystems; sid++) {
|
for (subsystem = spdk_nvmf_subsystem_get_first(tgt);
|
||||||
struct spdk_nvmf_subsystem *subsystem;
|
subsystem != NULL;
|
||||||
|
subsystem = spdk_nvmf_subsystem_get_next(subsystem)) {
|
||||||
subsystem = tgt->subsystems[sid];
|
|
||||||
if (!subsystem) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nvmf_poll_group_add_subsystem(group, subsystem, NULL, NULL) != 0) {
|
if (nvmf_poll_group_add_subsystem(group, subsystem, NULL, NULL) != 0) {
|
||||||
nvmf_tgt_cleanup_poll_group(group);
|
nvmf_tgt_cleanup_poll_group(group);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -163,6 +163,7 @@ test_nvmf_tgt_create_poll_group(void)
|
|||||||
tgt.subsystems[0]->max_nsid = 1;
|
tgt.subsystems[0]->max_nsid = 1;
|
||||||
tgt.subsystems[0]->ns = calloc(1, sizeof(struct spdk_nvmf_ns *));
|
tgt.subsystems[0]->ns = calloc(1, sizeof(struct spdk_nvmf_ns *));
|
||||||
SPDK_CU_ASSERT_FATAL(tgt.subsystems[0]->ns != NULL);
|
SPDK_CU_ASSERT_FATAL(tgt.subsystems[0]->ns != NULL);
|
||||||
|
MOCK_SET(spdk_nvmf_subsystem_get_first, &subsystem);
|
||||||
|
|
||||||
tgt.subsystems[0]->ns[0] = &ns;
|
tgt.subsystems[0]->ns[0] = &ns;
|
||||||
ns.crkey = 0xaa;
|
ns.crkey = 0xaa;
|
||||||
@ -201,6 +202,7 @@ test_nvmf_tgt_create_poll_group(void)
|
|||||||
CU_ASSERT(tgt.num_poll_groups == 0);
|
CU_ASSERT(tgt.num_poll_groups == 0);
|
||||||
free(tgt.subsystems[0]->ns);
|
free(tgt.subsystems[0]->ns);
|
||||||
free(tgt.subsystems);
|
free(tgt.subsystems);
|
||||||
|
MOCK_CLEAR(spdk_nvmf_subsystem_get_first);
|
||||||
|
|
||||||
spdk_thread_exit(thread);
|
spdk_thread_exit(thread);
|
||||||
while (!spdk_thread_is_exited(thread)) {
|
while (!spdk_thread_is_exited(thread)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user