diff --git a/scst/src/scst_mem.c b/scst/src/scst_mem.c index 28580c514..c4792da4f 100644 --- a/scst/src/scst_mem.c +++ b/scst/src/scst_mem.c @@ -1587,8 +1587,6 @@ static void sgv_pool_destroy(struct sgv_pool *pool) TRACE_ENTRY(); - cancel_delayed_work_sync(&pool->sgv_purge_work); - sgv_pool_flush(pool); mutex_lock(&sgv_pools_mutex); @@ -1601,6 +1599,8 @@ static void sgv_pool_destroy(struct sgv_pool *pool) scst_sgv_sysfs_del(pool); #endif + cancel_delayed_work_sync(&pool->sgv_purge_work); + for (i = 0; i < pool->max_caches; i++) { if (pool->caches[i]) kmem_cache_destroy(pool->caches[i]); @@ -1828,8 +1828,6 @@ void scst_sgv_pools_deinit(void) sgv_pool_destroy(sgv_norm_pool); sgv_pool_destroy(sgv_norm_clust_pool); - flush_scheduled_work(); - TRACE_EXIT(); return; }