In dm-crypt, it need to map one bio to scatterlist for improving the encryption efficiency. Thus this patch exports the __blk_bios_map_sg() function to map one bio with scatterlists. Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxx> --- block/blk-merge.c | 7 ++++--- include/linux/blkdev.h | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/block/blk-merge.c b/block/blk-merge.c index de5716d8..09cc7c4 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c @@ -331,9 +331,9 @@ new_segment: *bvprv = *bvec; } -static int __blk_bios_map_sg(struct request_queue *q, struct bio *bio, - struct scatterlist *sglist, - struct scatterlist **sg) +int __blk_bios_map_sg(struct request_queue *q, struct bio *bio, + struct scatterlist *sglist, + struct scatterlist **sg) { struct bio_vec bvec, bvprv = { NULL }; struct bvec_iter iter; @@ -372,6 +372,7 @@ single_segment: return nsegs; } +EXPORT_SYMBOL(__blk_bios_map_sg); /* * map a request to scatterlist, return number of sg entries setup. Caller diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 3fe27f8..dd8d10f 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1004,6 +1004,9 @@ extern void blk_queue_flush_queueable(struct request_queue *q, bool queueable); extern struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev); extern int blk_rq_map_sg(struct request_queue *, struct request *, struct scatterlist *); +extern int __blk_bios_map_sg(struct request_queue *q, struct bio *bio, + struct scatterlist *sglist, + struct scatterlist **sg); extern void blk_dump_rq_flags(struct request *, char *); extern long nr_blockdev_pages(void); -- 1.7.9.5 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel