static void pblk_gc_free_gc_rq(struct pblk_gc_rq *gc_rq)
{
- kfree(gc_rq->data);
+ vfree(gc_rq->data);
kfree(gc_rq);
}
unsigned int secs_to_gc;
int ret = 0;
- data = kmalloc(gc_rq->nr_secs * geo->sec_size, GFP_KERNEL);
+ data = vmalloc(gc_rq->nr_secs * geo->sec_size);
if (!data) {
ret = -ENOMEM;
goto out;
free_rq:
kfree(gc_rq);
free_data:
- kfree(data);
+ vfree(data);
out:
kref_put(&line->ref, pblk_line_put);
return ret;