[PATCH 1/2] block: introduce and export blk_rq_map_user_vec
Christoph Hellwig
hch at lst.de
Thu Jan 27 01:27:46 PST 2022
On Thu, Jan 27, 2022 at 01:55:35PM +0530, Kanchan Joshi wrote:
> Similiar to blk_rq_map_user except that it operates on iovec.
> This is a prep patch.
>
> Signed-off-by: Kanchan Joshi <joshi.k at samsung.com>
> Signed-off-by: Anuj Gupta <anuj20.g at samsung.com>
> ---
> block/blk-map.c | 19 +++++++++++++++++++
> include/linux/blk-mq.h | 2 ++
> 2 files changed, 21 insertions(+)
>
> diff --git a/block/blk-map.c b/block/blk-map.c
> index 4526adde0156..7fe45df3e580 100644
> --- a/block/blk-map.c
> +++ b/block/blk-map.c
> @@ -577,6 +577,25 @@ int blk_rq_map_user(struct request_queue *q, struct request *rq,
> }
> EXPORT_SYMBOL(blk_rq_map_user);
>
> +int blk_rq_map_user_vec(struct request_queue *q, struct request *rq,
> + struct rq_map_data *map_data, void __user *uvec,
> + unsigned long nr_vecs, gfp_t gfp_mask)
> +{
> + struct iovec fast_iov[UIO_FASTIOV];
> + struct iovec *iov = fast_iov;
> + struct iov_iter iter;
> + int ret;
> +
> + ret = import_iovec(rq_data_dir(rq), uvec, nr_vecs, UIO_FASTIOV, &iov, &iter);
> + if (unlikely(ret < 0))
> + return ret;
> + ret = blk_rq_map_user_iov(q, rq, NULL, &iter, gfp_mask);
> + kfree(iov);
> +
> + return ret;
I see very little point in adding this function vs just open coding it.
Also please don't add overly long lines.
More information about the Linux-nvme
mailing list