block: add bioset_init_from_src() helper
Add a helper that allows a caller to initialize a new bio_set, using the settings from an existing bio_set. Reported-by: Venkat R.B <vrbagal1@linux.vnet.ibm.com> Tested-by: Venkat R.B <vrbagal1@linux.vnet.ibm.com> Tested-by: Li Wang <liwang@redhat.com> Reviewed-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
c04fa44b76
commit
28e89fd914
18
block/bio.c
18
block/bio.c
|
@ -1967,6 +1967,24 @@ bad:
|
|||
}
|
||||
EXPORT_SYMBOL(bioset_init);
|
||||
|
||||
/*
|
||||
* Initialize and setup a new bio_set, based on the settings from
|
||||
* another bio_set.
|
||||
*/
|
||||
int bioset_init_from_src(struct bio_set *bs, struct bio_set *src)
|
||||
{
|
||||
int flags;
|
||||
|
||||
flags = 0;
|
||||
if (src->bvec_pool.min_nr)
|
||||
flags |= BIOSET_NEED_BVECS;
|
||||
if (src->rescue_workqueue)
|
||||
flags |= BIOSET_NEED_RESCUER;
|
||||
|
||||
return bioset_init(bs, src->bio_pool.min_nr, src->front_pad, flags);
|
||||
}
|
||||
EXPORT_SYMBOL(bioset_init_from_src);
|
||||
|
||||
#ifdef CONFIG_BLK_CGROUP
|
||||
|
||||
/**
|
||||
|
|
|
@ -417,6 +417,7 @@ enum {
|
|||
extern int bioset_init(struct bio_set *, unsigned int, unsigned int, int flags);
|
||||
extern void bioset_exit(struct bio_set *);
|
||||
extern int biovec_init_pool(mempool_t *pool, int pool_entries);
|
||||
extern int bioset_init_from_src(struct bio_set *bs, struct bio_set *src);
|
||||
|
||||
extern struct bio *bio_alloc_bioset(gfp_t, unsigned int, struct bio_set *);
|
||||
extern void bio_put(struct bio *);
|
||||
|
|
Loading…
Reference in New Issue