Lines Matching refs:gc_rq
24 static void pblk_gc_free_gc_rq(struct pblk_gc_rq *gc_rq) in pblk_gc_free_gc_rq() argument
26 if (gc_rq->data) in pblk_gc_free_gc_rq()
27 vfree(gc_rq->data); in pblk_gc_free_gc_rq()
28 kfree(gc_rq); in pblk_gc_free_gc_rq()
34 struct pblk_gc_rq *gc_rq, *tgc_rq; in pblk_gc_write() local
47 list_for_each_entry_safe(gc_rq, tgc_rq, &w_list, list) { in pblk_gc_write()
48 pblk_write_gc_to_cache(pblk, gc_rq); in pblk_gc_write()
49 list_del(&gc_rq->list); in pblk_gc_write()
50 kref_put(&gc_rq->line->ref, pblk_line_put); in pblk_gc_write()
51 pblk_gc_free_gc_rq(gc_rq); in pblk_gc_write()
93 struct pblk_gc_rq *gc_rq = gc_rq_ws->priv; in pblk_gc_line_ws() local
99 ret = pblk_submit_read_gc(pblk, gc_rq); in pblk_gc_line_ws()
105 if (!gc_rq->secs_to_gc) in pblk_gc_line_ws()
117 list_add_tail(&gc_rq->list, &gc->w_list); in pblk_gc_line_ws()
126 pblk_gc_free_gc_rq(gc_rq); in pblk_gc_line_ws()
187 struct pblk_gc_rq *gc_rq; in pblk_gc_line_prepare_ws() local
220 gc_rq = kmalloc(sizeof(struct pblk_gc_rq), GFP_KERNEL); in pblk_gc_line_prepare_ws()
221 if (!gc_rq) in pblk_gc_line_prepare_ws()
231 gc_rq->paddr_list[nr_secs] = bit; in pblk_gc_line_prepare_ws()
232 gc_rq->lba_list[nr_secs++] = le64_to_cpu(lba_list[bit]); in pblk_gc_line_prepare_ws()
236 kfree(gc_rq); in pblk_gc_line_prepare_ws()
240 gc_rq->nr_secs = nr_secs; in pblk_gc_line_prepare_ws()
241 gc_rq->line = line; in pblk_gc_line_prepare_ws()
243 gc_rq->data = vmalloc(array_size(gc_rq->nr_secs, geo->csecs)); in pblk_gc_line_prepare_ws()
244 if (!gc_rq->data) in pblk_gc_line_prepare_ws()
253 gc_rq_ws->priv = gc_rq; in pblk_gc_line_prepare_ws()
282 vfree(gc_rq->data); in pblk_gc_line_prepare_ws()
284 kfree(gc_rq); in pblk_gc_line_prepare_ws()