diff options
-rw-r--r-- | block/bio.c | 7 | ||||
-rw-r--r-- | block/blk-core.c | 2 | ||||
-rw-r--r-- | block/bounce.c | 2 | ||||
-rw-r--r-- | drivers/block/pktcdvd.c | 2 | ||||
-rw-r--r-- | drivers/md/linear.c | 2 | ||||
-rw-r--r-- | drivers/md/raid0.c | 2 | ||||
-rw-r--r-- | drivers/md/raid10.c | 2 | ||||
-rw-r--r-- | drivers/md/raid5.c | 2 | ||||
-rw-r--r-- | include/linux/bio.h | 28 |
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) |