BIO_ALLOC_BIOSET(9) The Linux VFS BIO_ALLOC_BIOSET(9)NAMEbio_alloc_bioset - allocate a bio for I/O
struct bio * bio_alloc_bioset(gfp_t gfp_mask, int nr_iovecs,
struct bio_set * bs);
the GFP_ mask given to the slab allocator
number of iovecs to pre-allocate
the bio_set to allocate from.
If bs is NULL, uses kmalloc to allocate the bio; else the allocation is
backed by the bs's mempool.
When bs is not NULL, if __GFP_WAIT is set then bio_alloc will always be
able to allocate a bio. This is due to the mempool guarantees. To make
this work, callers must never allocate more than 1 bio at a time from
this pool. Callers that need to allocate more than 1 bio must always
submit the previously allocated bio for IO before attempting to
allocate a new one. Failure to do so can cause deadlocks under memory
Pointer to new bio on success, NULL on failure.
COPYRIGHTKernel Hackers Manual 3.8. June 2014 BIO_ALLOC_BIOSET(9)