In prepartion of supporting RAIL, expose read and write APIs so their functionality can be leveraged by RAIL. Signed-off-by: Heiner Litz <hlitz@xxxxxxxx> --- drivers/lightnvm/pblk-read.c | 8 +++----- drivers/lightnvm/pblk-write.c | 4 ++-- drivers/lightnvm/pblk.h | 7 +++++++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/lightnvm/pblk-read.c b/drivers/lightnvm/pblk-read.c index 6d13763f2f6a..67d44caefff4 100644 --- a/drivers/lightnvm/pblk-read.c +++ b/drivers/lightnvm/pblk-read.c @@ -170,8 +170,7 @@ static void pblk_end_user_read(struct bio *bio) bio_endio(bio); } -static void __pblk_end_io_read(struct pblk *pblk, struct nvm_rq *rqd, - bool put_line) +void __pblk_end_io_read(struct pblk *pblk, struct nvm_rq *rqd, bool put_line) { struct nvm_tgt_dev *dev = pblk->dev; struct pblk_g_ctx *r_ctx = nvm_rq_to_pdu(rqd); @@ -285,10 +284,9 @@ static void pblk_end_partial_read(struct nvm_rq *rqd) __pblk_end_io_read(pblk, rqd, false); } -static int pblk_setup_partial_read(struct pblk *pblk, struct nvm_rq *rqd, +int pblk_setup_partial_read(struct pblk *pblk, struct nvm_rq *rqd, unsigned int bio_init_idx, - unsigned long *read_bitmap, - int nr_holes) + unsigned long *read_bitmap, int nr_holes) { struct pblk_sec_meta *meta_list = rqd->meta_list; struct pblk_g_ctx *r_ctx = nvm_rq_to_pdu(rqd); diff --git a/drivers/lightnvm/pblk-write.c b/drivers/lightnvm/pblk-write.c index 9554febee480..1ce03d7c873b 100644 --- a/drivers/lightnvm/pblk-write.c +++ b/drivers/lightnvm/pblk-write.c @@ -217,7 +217,7 @@ static void pblk_submit_rec(struct work_struct *work) } -static void pblk_end_w_fail(struct pblk *pblk, struct nvm_rq *rqd) +void pblk_end_w_fail(struct pblk *pblk, struct nvm_rq *rqd) { struct pblk_rec_ctx *recovery; @@ -500,7 +500,7 @@ static struct pblk_line *pblk_should_submit_meta_io(struct pblk *pblk, return meta_line; } -static int pblk_submit_io_set(struct pblk *pblk, struct nvm_rq *rqd) +int pblk_submit_io_set(struct pblk *pblk, struct nvm_rq *rqd) { struct ppa_addr erase_ppa; struct pblk_line *meta_line; diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h index 3596043332f2..eab50df70ae6 100644 --- a/drivers/lightnvm/pblk.h +++ b/drivers/lightnvm/pblk.h @@ -861,6 +861,8 @@ void pblk_lookup_l2p_seq(struct pblk *pblk, struct ppa_addr *ppas, int pblk_write_to_cache(struct pblk *pblk, struct bio *bio, unsigned long flags); int pblk_write_gc_to_cache(struct pblk *pblk, struct pblk_gc_rq *gc_rq); +void pblk_end_w_fail(struct pblk *pblk, struct nvm_rq *rqd); +int pblk_submit_io_set(struct pblk *pblk, struct nvm_rq *rqd); /* * pblk map @@ -886,6 +888,11 @@ void pblk_write_kick(struct pblk *pblk); extern struct bio_set pblk_bio_set; int pblk_submit_read(struct pblk *pblk, struct bio *bio); int pblk_submit_read_gc(struct pblk *pblk, struct pblk_gc_rq *gc_rq); +void __pblk_end_io_read(struct pblk *pblk, struct nvm_rq *rqd, bool put_line); +int pblk_setup_partial_read(struct pblk *pblk, struct nvm_rq *rqd, + unsigned int bio_init_idx, + unsigned long *read_bitmap, int nr_holes); + /* * pblk recovery */ -- 2.17.1