Commit 70a6f71b authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

block: add a bio_init_inline helper



Just a simpler wrapper around bio_init for callers that want to
initialize a bio with inline bvecs.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarJohn Garry <john.g.garry@oracle.com>
Reviewed-by: default avatarYu Kuai <yukuai3@huawei.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 9f7c02e0
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -462,7 +462,10 @@ static struct bio *bio_alloc_percpu_cache(struct block_device *bdev,
	cache->nr--;
	put_cpu();

	bio_init(bio, bdev, nr_vecs ? bio->bi_inline_vecs : NULL, nr_vecs, opf);
	if (nr_vecs)
		bio_init_inline(bio, bdev, nr_vecs, opf);
	else
		bio_init(bio, bdev, NULL, nr_vecs, opf);
	bio->bi_pool = bs;
	return bio;
}
@@ -578,7 +581,7 @@ struct bio *bio_alloc_bioset(struct block_device *bdev, unsigned short nr_vecs,

		bio_init(bio, bdev, bvl, nr_vecs, opf);
	} else if (nr_vecs) {
		bio_init(bio, bdev, bio->bi_inline_vecs, BIO_INLINE_VECS, opf);
		bio_init_inline(bio, bdev, BIO_INLINE_VECS, opf);
	} else {
		bio_init(bio, bdev, NULL, 0, opf);
	}
+1 −2
Original line number Diff line number Diff line
@@ -167,8 +167,7 @@ static struct bio *blk_crypto_fallback_clone_bio(struct bio *bio_src)
	bio = bio_kmalloc(nr_segs, GFP_NOIO);
	if (!bio)
		return NULL;
	bio_init(bio, bio_src->bi_bdev, bio->bi_inline_vecs, nr_segs,
		 bio_src->bi_opf);
	bio_init_inline(bio, bio_src->bi_bdev, nr_segs, bio_src->bi_opf);
	if (bio_flagged(bio_src, BIO_REMAPPED))
		bio_set_flag(bio, BIO_REMAPPED);
	bio->bi_ioprio		= bio_src->bi_ioprio;
+4 −4
Original line number Diff line number Diff line
@@ -157,7 +157,7 @@ static int bio_copy_user_iov(struct request *rq, struct rq_map_data *map_data,
	bio = bio_kmalloc(nr_pages, gfp_mask);
	if (!bio)
		goto out_bmd;
	bio_init(bio, NULL, bio->bi_inline_vecs, nr_pages, req_op(rq));
	bio_init_inline(bio, NULL, nr_pages, req_op(rq));

	if (map_data) {
		nr_pages = 1U << map_data->page_order;
@@ -264,7 +264,7 @@ static struct bio *blk_rq_map_bio_alloc(struct request *rq,
		bio = bio_kmalloc(nr_vecs, gfp_mask);
		if (!bio)
			return NULL;
		bio_init(bio, NULL, bio->bi_inline_vecs, nr_vecs, req_op(rq));
		bio_init_inline(bio, NULL, nr_vecs, req_op(rq));
	}
	return bio;
}
@@ -326,7 +326,7 @@ static struct bio *bio_map_kern(void *data, unsigned int len, enum req_op op,
	bio = bio_kmalloc(nr_vecs, gfp_mask);
	if (!bio)
		return ERR_PTR(-ENOMEM);
	bio_init(bio, NULL, bio->bi_inline_vecs, nr_vecs, op);
	bio_init_inline(bio, NULL, nr_vecs, op);
	if (is_vmalloc_addr(data)) {
		bio->bi_private = data;
		if (!bio_add_vmalloc(bio, data, len)) {
@@ -392,7 +392,7 @@ static struct bio *bio_copy_kern(void *data, unsigned int len, enum req_op op,
	bio = bio_kmalloc(nr_pages, gfp_mask);
	if (!bio)
		return ERR_PTR(-ENOMEM);
	bio_init(bio, NULL, bio->bi_inline_vecs, nr_pages, op);
	bio_init_inline(bio, NULL, nr_pages, op);

	while (len) {
		struct page *page;
+1 −2
Original line number Diff line number Diff line
@@ -115,8 +115,7 @@ void bch_data_verify(struct cached_dev *dc, struct bio *bio)
	check = bio_kmalloc(nr_segs, GFP_NOIO);
	if (!check)
		return;
	bio_init(check, bio->bi_bdev, check->bi_inline_vecs, nr_segs,
		 REQ_OP_READ);
	bio_init_inline(check, bio->bi_bdev, nr_segs, REQ_OP_READ);
	check->bi_iter.bi_sector = bio->bi_iter.bi_sector;
	check->bi_iter.bi_size = bio->bi_iter.bi_size;

+1 −2
Original line number Diff line number Diff line
@@ -26,8 +26,7 @@ struct bio *bch_bbio_alloc(struct cache_set *c)
	struct bbio *b = mempool_alloc(&c->bio_meta, GFP_NOIO);
	struct bio *bio = &b->bio;

	bio_init(bio, NULL, bio->bi_inline_vecs,
		 meta_bucket_pages(&c->cache->sb), 0);
	bio_init_inline(bio, NULL, meta_bucket_pages(&c->cache->sb), 0);

	return bio;
}
Loading