diff --git a/app/nvmf_tgt/nvmf_tgt.c b/app/nvmf_tgt/nvmf_tgt.c index 241b46c9b..14bc8f76c 100644 --- a/app/nvmf_tgt/nvmf_tgt.c +++ b/app/nvmf_tgt/nvmf_tgt.c @@ -77,12 +77,12 @@ subsystem_delete_event(void *arg1, void *arg2) } static void -subsystem_unregister_poller(void *arg1, void *arg2) +subsystem_stop(void *arg1, void *arg2) { struct nvmf_tgt_subsystem *app_subsys = arg1; struct spdk_event *event = arg2; - spdk_poller_unregister(&app_subsys->poller); + spdk_nvmf_subsystem_stop(app_subsys->subsystem); spdk_event_call(event); } @@ -94,7 +94,7 @@ nvmf_tgt_delete_subsystem(struct nvmf_tgt_subsystem *app_subsys) event2 = spdk_event_allocate(spdk_env_get_current_core(), subsystem_delete_event, app_subsys, NULL); - event1 = spdk_event_allocate(app_subsys->lcore, subsystem_unregister_poller, app_subsys, event2); + event1 = spdk_event_allocate(app_subsys->lcore, subsystem_stop, app_subsys, event2); spdk_event_call(event1); } diff --git a/app/nvmf_tgt/nvmf_tgt.h b/app/nvmf_tgt/nvmf_tgt.h index a59aead0c..8c9081097 100644 --- a/app/nvmf_tgt/nvmf_tgt.h +++ b/app/nvmf_tgt/nvmf_tgt.h @@ -53,7 +53,6 @@ struct spdk_nvmf_tgt_conf { struct nvmf_tgt_subsystem { struct spdk_nvmf_subsystem *subsystem; - struct spdk_poller *poller; TAILQ_ENTRY(nvmf_tgt_subsystem) tailq; diff --git a/include/spdk/nvmf.h b/include/spdk/nvmf.h index 5532c1d9b..4d69ff725 100644 --- a/include/spdk/nvmf.h +++ b/include/spdk/nvmf.h @@ -134,6 +134,8 @@ struct spdk_nvmf_subsystem *spdk_nvmf_tgt_find_subsystem(struct spdk_nvmf_tgt *t */ int spdk_nvmf_subsystem_start(struct spdk_nvmf_subsystem *subsystem); +void spdk_nvmf_subsystem_stop(struct spdk_nvmf_subsystem *subsystem); + void spdk_nvmf_delete_subsystem(struct spdk_nvmf_subsystem *subsystem); /** diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index 96aac1142..232c66777 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -50,6 +50,12 @@ spdk_nvmf_subsystem_start(struct spdk_nvmf_subsystem *subsystem) return spdk_nvmf_subsystem_bdev_attach(subsystem); } +void +spdk_nvmf_subsystem_stop(struct spdk_nvmf_subsystem *subsystem) +{ + spdk_nvmf_subsystem_bdev_detach(subsystem); +} + static bool spdk_nvmf_valid_nqn(const char *nqn) { @@ -171,8 +177,6 @@ spdk_nvmf_delete_subsystem(struct spdk_nvmf_subsystem *subsystem) spdk_nvmf_ctrlr_destruct(ctrlr); } - spdk_nvmf_subsystem_bdev_detach(subsystem); - free(subsystem->ns); subsystem->tgt->subsystems[subsystem->id] = NULL;