gc_rq              93 drivers/lightnvm/pblk-cache.c int pblk_write_gc_to_cache(struct pblk *pblk, struct pblk_gc_rq *gc_rq)
gc_rq              97 drivers/lightnvm/pblk-cache.c 	void *data = gc_rq->data;
gc_rq             105 drivers/lightnvm/pblk-cache.c 	if (!pblk_rb_may_write_gc(&pblk->rwb, gc_rq->secs_to_gc, &bpos)) {
gc_rq             113 drivers/lightnvm/pblk-cache.c 	for (i = 0, valid_entries = 0; i < gc_rq->nr_secs; i++) {
gc_rq             114 drivers/lightnvm/pblk-cache.c 		if (gc_rq->lba_list[i] == ADDR_EMPTY)
gc_rq             117 drivers/lightnvm/pblk-cache.c 		w_ctx.lba = gc_rq->lba_list[i];
gc_rq             120 drivers/lightnvm/pblk-cache.c 		pblk_rb_write_entry_gc(&pblk->rwb, data, w_ctx, gc_rq->line,
gc_rq             121 drivers/lightnvm/pblk-cache.c 						gc_rq->paddr_list[i], pos);
gc_rq             127 drivers/lightnvm/pblk-cache.c 	WARN_ONCE(gc_rq->secs_to_gc != valid_entries,
gc_rq              24 drivers/lightnvm/pblk-gc.c static void pblk_gc_free_gc_rq(struct pblk_gc_rq *gc_rq)
gc_rq              26 drivers/lightnvm/pblk-gc.c 	if (gc_rq->data)
gc_rq              27 drivers/lightnvm/pblk-gc.c 		vfree(gc_rq->data);
gc_rq              28 drivers/lightnvm/pblk-gc.c 	kfree(gc_rq);
gc_rq              34 drivers/lightnvm/pblk-gc.c 	struct pblk_gc_rq *gc_rq, *tgc_rq;
gc_rq              47 drivers/lightnvm/pblk-gc.c 	list_for_each_entry_safe(gc_rq, tgc_rq, &w_list, list) {
gc_rq              48 drivers/lightnvm/pblk-gc.c 		pblk_write_gc_to_cache(pblk, gc_rq);
gc_rq              49 drivers/lightnvm/pblk-gc.c 		list_del(&gc_rq->list);
gc_rq              50 drivers/lightnvm/pblk-gc.c 		kref_put(&gc_rq->line->ref, pblk_line_put);
gc_rq              51 drivers/lightnvm/pblk-gc.c 		pblk_gc_free_gc_rq(gc_rq);
gc_rq              93 drivers/lightnvm/pblk-gc.c 	struct pblk_gc_rq *gc_rq = gc_rq_ws->priv;
gc_rq              99 drivers/lightnvm/pblk-gc.c 	ret = pblk_submit_read_gc(pblk, gc_rq);
gc_rq             105 drivers/lightnvm/pblk-gc.c 	if (!gc_rq->secs_to_gc)
gc_rq             117 drivers/lightnvm/pblk-gc.c 	list_add_tail(&gc_rq->list, &gc->w_list);
gc_rq             126 drivers/lightnvm/pblk-gc.c 	pblk_gc_free_gc_rq(gc_rq);
gc_rq             187 drivers/lightnvm/pblk-gc.c 	struct pblk_gc_rq *gc_rq;
gc_rq             220 drivers/lightnvm/pblk-gc.c 	gc_rq = kmalloc(sizeof(struct pblk_gc_rq), GFP_KERNEL);
gc_rq             221 drivers/lightnvm/pblk-gc.c 	if (!gc_rq)
gc_rq             231 drivers/lightnvm/pblk-gc.c 		gc_rq->paddr_list[nr_secs] = bit;
gc_rq             232 drivers/lightnvm/pblk-gc.c 		gc_rq->lba_list[nr_secs++] = le64_to_cpu(lba_list[bit]);
gc_rq             236 drivers/lightnvm/pblk-gc.c 		kfree(gc_rq);
gc_rq             240 drivers/lightnvm/pblk-gc.c 	gc_rq->nr_secs = nr_secs;
gc_rq             241 drivers/lightnvm/pblk-gc.c 	gc_rq->line = line;
gc_rq             243 drivers/lightnvm/pblk-gc.c 	gc_rq->data = vmalloc(array_size(gc_rq->nr_secs, geo->csecs));
gc_rq             244 drivers/lightnvm/pblk-gc.c 	if (!gc_rq->data)
gc_rq             253 drivers/lightnvm/pblk-gc.c 	gc_rq_ws->priv = gc_rq;
gc_rq             282 drivers/lightnvm/pblk-gc.c 	vfree(gc_rq->data);
gc_rq             284 drivers/lightnvm/pblk-gc.c 	kfree(gc_rq);
gc_rq             418 drivers/lightnvm/pblk-read.c int pblk_submit_read_gc(struct pblk *pblk, struct pblk_gc_rq *gc_rq)
gc_rq             429 drivers/lightnvm/pblk-read.c 	if (gc_rq->nr_secs > 1) {
gc_rq             430 drivers/lightnvm/pblk-read.c 		gc_rq->secs_to_gc = read_ppalist_rq_gc(pblk, &rqd, gc_rq->line,
gc_rq             431 drivers/lightnvm/pblk-read.c 							gc_rq->lba_list,
gc_rq             432 drivers/lightnvm/pblk-read.c 							gc_rq->paddr_list,
gc_rq             433 drivers/lightnvm/pblk-read.c 							gc_rq->nr_secs);
gc_rq             434 drivers/lightnvm/pblk-read.c 		if (gc_rq->secs_to_gc == 1)
gc_rq             437 drivers/lightnvm/pblk-read.c 		gc_rq->secs_to_gc = read_rq_gc(pblk, &rqd, gc_rq->line,
gc_rq             438 drivers/lightnvm/pblk-read.c 							gc_rq->lba_list[0],
gc_rq             439 drivers/lightnvm/pblk-read.c 							gc_rq->paddr_list[0]);
gc_rq             442 drivers/lightnvm/pblk-read.c 	if (!(gc_rq->secs_to_gc))
gc_rq             446 drivers/lightnvm/pblk-read.c 	rqd.nr_ppas = gc_rq->secs_to_gc;
gc_rq             448 drivers/lightnvm/pblk-read.c 	if (pblk_submit_io_sync(pblk, &rqd, gc_rq->data)) {
gc_rq             453 drivers/lightnvm/pblk-read.c 	pblk_read_check_rand(pblk, &rqd, gc_rq->lba_list, gc_rq->nr_secs);
gc_rq             465 drivers/lightnvm/pblk-read.c 	atomic_long_add(gc_rq->secs_to_gc, &pblk->sync_reads);
gc_rq             466 drivers/lightnvm/pblk-read.c 	atomic_long_add(gc_rq->secs_to_gc, &pblk->recov_gc_reads);
gc_rq             467 drivers/lightnvm/pblk-read.c 	atomic_long_sub(gc_rq->secs_to_gc, &pblk->inflight_reads);
gc_rq             848 drivers/lightnvm/pblk.h int pblk_write_gc_to_cache(struct pblk *pblk, struct pblk_gc_rq *gc_rq);
gc_rq             873 drivers/lightnvm/pblk.h int pblk_submit_read_gc(struct pblk *pblk, struct pblk_gc_rq *gc_rq);