Commit e81cef5d authored by Al Viro's avatar Al Viro
Browse files

blk_rq_map_user_iov(): move iov_iter_advance() down



... into bio_{map,copy}_user_iov()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent b282cc76
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1195,7 +1195,7 @@ int bio_uncopy_user(struct bio *bio)
 */
struct bio *bio_copy_user_iov(struct request_queue *q,
			      struct rq_map_data *map_data,
			      const struct iov_iter *iter,
			      struct iov_iter *iter,
			      gfp_t gfp_mask)
{
	struct bio_map_data *bmd;
@@ -1298,6 +1298,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
		if (ret)
			goto cleanup;
	}
	iov_iter_advance(iter, bio->bi_iter.bi_size);

	bio->bi_private = bmd;
	return bio;
@@ -1320,7 +1321,7 @@ out_bmd:
 *	device. Returns an error pointer in case of error.
 */
struct bio *bio_map_user_iov(struct request_queue *q,
			     const struct iov_iter *iter,
			     struct iov_iter *iter,
			     gfp_t gfp_mask)
{
	int j;
@@ -1399,6 +1400,7 @@ struct bio *bio_map_user_iov(struct request_queue *q,
	 * reference to it
	 */
	bio_get(bio);
	iov_iter_advance(iter, bio->bi_iter.bi_size);
	return bio;

 out_unmap:
+0 −1
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ static int __blk_rq_map_user_iov(struct request *rq,
	if (map_data && map_data->null_mapped)
		bio_set_flag(bio, BIO_NULL_MAPPED);

	iov_iter_advance(iter, bio->bi_iter.bi_size);
	if (map_data)
		map_data->offset += bio->bi_iter.bi_size;

+2 −2
Original line number Diff line number Diff line
@@ -462,7 +462,7 @@ extern int bio_add_pc_page(struct request_queue *, struct bio *, struct page *,
int bio_iov_iter_get_pages(struct bio *bio, struct iov_iter *iter);
struct rq_map_data;
extern struct bio *bio_map_user_iov(struct request_queue *,
				    const struct iov_iter *, gfp_t);
				    struct iov_iter *, gfp_t);
extern void bio_unmap_user(struct bio *);
extern struct bio *bio_map_kern(struct request_queue *, void *, unsigned int,
				gfp_t);
@@ -494,7 +494,7 @@ extern void bio_free_pages(struct bio *bio);

extern struct bio *bio_copy_user_iov(struct request_queue *,
				     struct rq_map_data *,
				     const struct iov_iter *,
				     struct iov_iter *,
				     gfp_t);
extern int bio_uncopy_user(struct bio *);
void zero_fill_bio(struct bio *bio);