]> Git Repo - linux.git/blobdiff - drivers/lightnvm/pblk-gc.c
lightnvm: pass flag on graceful teardown to targets
[linux.git] / drivers / lightnvm / pblk-gc.c
index 6851a5c6718910af85cf57783c4de3e371dd26a7..b0cc277bf972924aabf85bcc00112a7ba3958b56 100644 (file)
@@ -649,7 +649,7 @@ fail_free_main_kthread:
        return ret;
 }
 
-void pblk_gc_exit(struct pblk *pblk)
+void pblk_gc_exit(struct pblk *pblk, bool graceful)
 {
        struct pblk_gc *gc = &pblk->gc;
 
@@ -663,10 +663,12 @@ void pblk_gc_exit(struct pblk *pblk)
        if (gc->gc_reader_ts)
                kthread_stop(gc->gc_reader_ts);
 
-       flush_workqueue(gc->gc_reader_wq);
-       destroy_workqueue(gc->gc_reader_wq);
+       if (graceful) {
+               flush_workqueue(gc->gc_reader_wq);
+               flush_workqueue(gc->gc_line_reader_wq);
+       }
 
-       flush_workqueue(gc->gc_line_reader_wq);
+       destroy_workqueue(gc->gc_reader_wq);
        destroy_workqueue(gc->gc_line_reader_wq);
 
        if (gc->gc_writer_ts)
This page took 0.029702 seconds and 4 git commands to generate.