Lines Matching refs:pblk
21 static int pblk_map_page_data(struct pblk *pblk, unsigned int sentry, in pblk_map_page_data() argument
27 struct pblk_line *line = pblk_line_get_data(pblk); in pblk_map_page_data()
32 int nr_secs = pblk->min_write_pgs; in pblk_map_page_data()
41 line = pblk_line_replace_data(pblk); in pblk_map_page_data()
42 pblk_line_close_meta(pblk, prev_line); in pblk_map_page_data()
49 lba_list = emeta_to_lbas(pblk, emeta->buf); in pblk_map_page_data()
51 paddr = pblk_alloc_page(pblk, line, nr_secs); in pblk_map_page_data()
57 ppa_list[i] = addr_to_gen_ppa(pblk, paddr, line->id); in pblk_map_page_data()
68 w_ctx = pblk_rb_w_ctx(&pblk->rwb, sentry + i); in pblk_map_page_data()
75 atomic64_inc(&pblk->pad_wa); in pblk_map_page_data()
78 __pblk_map_invalidate(pblk, line, paddr); in pblk_map_page_data()
82 pblk_down_rq(pblk, ppa_list, nr_secs, lun_bitmap); in pblk_map_page_data()
86 void pblk_map_rq(struct pblk *pblk, struct nvm_rq *rqd, unsigned int sentry, in pblk_map_rq() argument
92 int min = pblk->min_write_pgs; in pblk_map_rq()
97 if (pblk_map_page_data(pblk, sentry + i, &rqd->ppa_list[i], in pblk_map_rq()
100 pblk_free_rqd(pblk, rqd, PBLK_WRITE); in pblk_map_rq()
101 pblk_pipeline_stop(pblk); in pblk_map_rq()
107 void pblk_map_erase_rq(struct pblk *pblk, struct nvm_rq *rqd, in pblk_map_erase_rq() argument
111 struct nvm_tgt_dev *dev = pblk->dev; in pblk_map_erase_rq()
113 struct pblk_line_meta *lm = &pblk->lm; in pblk_map_erase_rq()
117 int min = pblk->min_write_pgs; in pblk_map_erase_rq()
122 if (pblk_map_page_data(pblk, sentry + i, &rqd->ppa_list[i], in pblk_map_erase_rq()
125 pblk_free_rqd(pblk, rqd, PBLK_WRITE); in pblk_map_erase_rq()
126 pblk_pipeline_stop(pblk); in pblk_map_erase_rq()
134 e_line = pblk_line_get_erase(pblk); in pblk_map_erase_rq()
136 return pblk_map_rq(pblk, rqd, sentry, lun_bitmap, in pblk_map_erase_rq()
150 return pblk_map_rq(pblk, rqd, sentry, lun_bitmap, in pblk_map_erase_rq()
156 d_line = pblk_line_get_data(pblk); in pblk_map_erase_rq()
161 e_line = pblk_line_get_erase(pblk); in pblk_map_erase_rq()
185 *erase_ppa = pblk->luns[bit].bppa; /* set ch and lun */ in pblk_map_erase_rq()