diff --git a/lib/ftl/ftl_init.c b/lib/ftl/ftl_init.c index 0fe382e27..3dcd40482 100644 --- a/lib/ftl/ftl_init.c +++ b/lib/ftl/ftl_init.c @@ -964,9 +964,6 @@ ftl_dev_free_sync(struct spdk_ftl_dev *dev) } pthread_mutex_unlock(&g_ftl_queue_lock); - ftl_dev_free_thread(dev, &dev->read_thread); - ftl_dev_free_thread(dev, &dev->core_thread); - assert(LIST_EMPTY(&dev->wptr_list)); ftl_dev_dump_bands(dev); @@ -1004,6 +1001,9 @@ ftl_halt_poller(void *ctx) if (!dev->core_thread.poller && !dev->read_thread.poller) { spdk_poller_unregister(&dev->halt_poller); + ftl_dev_free_thread(dev, &dev->read_thread); + ftl_dev_free_thread(dev, &dev->core_thread); + ftl_anm_unregister_device(dev); ftl_dev_free_sync(dev);