summaryrefslogtreecommitdiff
path: root/linux/bio.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/bio.c')
-rw-r--r--linux/bio.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/linux/bio.c b/linux/bio.c
index 93a791c4..08dcd584 100644
--- a/linux/bio.c
+++ b/linux/bio.c
@@ -306,6 +306,20 @@ struct bio *bio_kmalloc(unsigned int nr_iovecs, gfp_t gfp_mask)
return bio;
}
+struct bio *bio_alloc(struct block_device *bdev, unsigned nr_iovecs,
+ blk_opf_t opf, gfp_t gfp_mask)
+{
+ struct bio *bio;
+
+ bio = kmalloc(sizeof(struct bio) +
+ sizeof(struct bio_vec) * nr_iovecs, gfp_mask);
+ if (unlikely(!bio))
+ return NULL;
+ bio_init(bio, bdev, nr_iovecs ? bio->bi_inline_vecs : NULL, nr_iovecs, opf);
+ bio->bi_pool = NULL;
+ return bio;
+}
+
static struct bio_vec *bvec_alloc(mempool_t *pool, int *nr_vecs,
gfp_t gfp_mask)
{