summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--block/bio.c7
-rw-r--r--block/blk-core.c2
-rw-r--r--block/bounce.c2
-rw-r--r--drivers/block/pktcdvd.c2
-rw-r--r--drivers/md/linear.c2
-rw-r--r--drivers/md/raid0.c2
-rw-r--r--drivers/md/raid10.c2
-rw-r--r--drivers/md/raid5.c2
-rw-r--r--include/linux/bio.h28
9 files changed, 21 insertions, 28 deletions
diff --git a/block/bio.c b/block/bio.c
index 709536a81661..48cdd66c9d52 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -52,7 +52,7 @@ static struct biovec_slab bvec_slabs[BVEC_POOL_NR] __read_mostly = {
* fs_bio_set is the bio_set containing bio and iovec memory pools used by
* IO code that does not need private memory pools.
*/
-struct bio_set *fs_bio_set;
+struct bio_set fs_bio_set;
EXPORT_SYMBOL(fs_bio_set);
/*
@@ -2142,11 +2142,10 @@ static int __init init_bio(void)
bio_integrity_init();
biovec_init_slabs();
- fs_bio_set = bioset_create(BIO_POOL_SIZE, 0);
- if (!fs_bio_set)
+ if (bioset_init(&fs_bio_set, BIO_POOL_SIZE, 0))
panic("bio: can't allocate bios\n");
- if (bioset_integrity_create(fs_bio_set, BIO_POOL_SIZE))
+ if (bioset_integrity_create(&fs_bio_set, BIO_POOL_SIZE))
panic("bio: can't create integrity pool\n");
return 0;
diff --git a/block/blk-core.c b/block/blk-core.c
index 14d7c0740dc0..7e3cfa9c88cd 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -3061,7 +3061,7 @@ int blk_rq_prep_clone(struct request *rq, struct request *rq_src,
struct bio *bio, *bio_src;
if (!bs)
- bs = fs_bio_set;
+ bs = &fs_bio_set;
__rq_for_each_bio(bio_src, rq_src) {
bio = bio_clone_fast(bio_src, gfp_mask, bs);
diff --git a/block/bounce.c b/block/bounce.c
index 1cb5dd3a5da1..4217c943570b 100644
--- a/block/bounce.c
+++ b/block/bounce.c
@@ -194,7 +194,7 @@ static void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig,
return;
bounce:
- bio = bio_clone_bioset(*bio_orig, GFP_NOIO, fs_bio_set);
+ bio = bio_clone(*bio_orig, GFP_NOIO);
bio_for_each_segment_all(to, bio, i) {
struct page *page = to->bv_page;
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 90fa4ac149db..9681445aa4d7 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -2490,7 +2490,7 @@ static blk_qc_t pkt_make_request(struct request_queue *q, struct bio *bio)
split = bio_split(bio, last_zone -
bio->bi_iter.bi_sector,
- GFP_NOIO, fs_bio_set);
+ GFP_NOIO, &fs_bio_set);
bio_chain(split, bio);
} else {
split = bio;
diff --git a/drivers/md/linear.c b/drivers/md/linear.c
index 86f5d435901d..969c362efe7b 100644
--- a/drivers/md/linear.c
+++ b/drivers/md/linear.c
@@ -243,7 +243,7 @@ static void linear_make_request(struct mddev *mddev, struct bio *bio)
*/
split = bio_split(bio, end_sector -
bio->bi_iter.bi_sector,
- GFP_NOIO, fs_bio_set);
+ GFP_NOIO, &fs_bio_set);
bio_chain(split, bio);
} else {
split = bio;
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c
index 258986a2699d..48b1761ba833 100644
--- a/drivers/md/raid0.c
+++ b/drivers/md/raid0.c
@@ -476,7 +476,7 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio)
sector = bio->bi_iter.bi_sector;
if (sectors < bio_sectors(bio)) {
- split = bio_split(bio, sectors, GFP_NOIO, fs_bio_set);
+ split = bio_split(bio, sectors, GFP_NOIO, &fs_bio_set);
bio_chain(split, bio);
} else {
split = bio;
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 39fddda2fef2..4f7de3bb0b2c 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -1464,7 +1464,7 @@ static void raid10_make_request(struct mddev *mddev, struct bio *bio)
split = bio_split(bio, chunk_sects -
(bio->bi_iter.bi_sector &
(chunk_sects - 1)),
- GFP_NOIO, fs_bio_set);
+ GFP_NOIO, &fs_bio_set);
bio_chain(split, bio);
} else {
split = bio;
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 92ac251e91e6..5f55a424e908 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -4894,7 +4894,7 @@ static struct bio *chunk_aligned_read(struct mddev *mddev, struct bio *raid_bio)
unsigned sectors = chunk_sects - (sector & (chunk_sects-1));
if (sectors < bio_sectors(raid_bio)) {
- split = bio_split(raid_bio, sectors, GFP_NOIO, fs_bio_set);
+ split = bio_split(raid_bio, sectors, GFP_NOIO, &fs_bio_set);
bio_chain(split, raid_bio);
} else
split = raid_bio;
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 815dc364d3f1..ecd70498c7d7 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -389,18 +389,6 @@ extern void __bio_clone_fast(struct bio *, struct bio *);
extern struct bio *bio_clone_fast(struct bio *, gfp_t, struct bio_set *);
extern struct bio *bio_clone_bioset(struct bio *, gfp_t, struct bio_set *bs);
-extern struct bio_set *fs_bio_set;
-
-static inline struct bio *bio_alloc(gfp_t gfp_mask, unsigned int nr_iovecs)
-{
- return bio_alloc_bioset(gfp_mask, nr_iovecs, fs_bio_set);
-}
-
-static inline struct bio *bio_clone(struct bio *bio, gfp_t gfp_mask)
-{
- return bio_clone_bioset(bio, gfp_mask, fs_bio_set);
-}
-
static inline struct bio *bio_kmalloc(gfp_t gfp_mask, unsigned int nr_iovecs)
{
return bio_alloc_bioset(gfp_mask, nr_iovecs, NULL);
@@ -703,11 +691,17 @@ struct biovec_slab {
struct kmem_cache *slab;
};
-/*
- * a small number of entries is fine, not going to be performance critical.
- * basically we just need to survive
- */
-#define BIO_SPLIT_ENTRIES 2
+extern struct bio_set fs_bio_set;
+
+static inline struct bio *bio_alloc(gfp_t gfp_mask, unsigned int nr_iovecs)
+{
+ return bio_alloc_bioset(gfp_mask, nr_iovecs, &fs_bio_set);
+}
+
+static inline struct bio *bio_clone(struct bio *bio, gfp_t gfp_mask)
+{
+ return bio_clone_bioset(bio, gfp_mask, &fs_bio_set);
+}
#if defined(CONFIG_BLK_DEV_INTEGRITY)