Merge tag 'for-4.18-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave...
[muen/linux.git] / fs / btrfs / extent_io.c
index 8fd86e29085f20ddcb368b7d62129a45b01b987c..b3e45714d28f0507f40e590ff14076fcdb7728a5 100644 (file)
@@ -26,7 +26,7 @@
 
 static struct kmem_cache *extent_state_cache;
 static struct kmem_cache *extent_buffer_cache;
-static struct bio_set *btrfs_bioset;
+static struct bio_set btrfs_bioset;
 
 static inline bool extent_state_in_tree(const struct extent_state *state)
 {
@@ -162,20 +162,18 @@ int __init extent_io_init(void)
        if (!extent_buffer_cache)
                goto free_state_cache;
 
-       btrfs_bioset = bioset_create(BIO_POOL_SIZE,
-                                    offsetof(struct btrfs_io_bio, bio),
-                                    BIOSET_NEED_BVECS);
-       if (!btrfs_bioset)
+       if (bioset_init(&btrfs_bioset, BIO_POOL_SIZE,
+                       offsetof(struct btrfs_io_bio, bio),
+                       BIOSET_NEED_BVECS))
                goto free_buffer_cache;
 
-       if (bioset_integrity_create(btrfs_bioset, BIO_POOL_SIZE))
+       if (bioset_integrity_create(&btrfs_bioset, BIO_POOL_SIZE))
                goto free_bioset;
 
        return 0;
 
 free_bioset:
-       bioset_free(btrfs_bioset);
-       btrfs_bioset = NULL;
+       bioset_exit(&btrfs_bioset);
 
 free_buffer_cache:
        kmem_cache_destroy(extent_buffer_cache);
@@ -198,8 +196,7 @@ void __cold extent_io_exit(void)
        rcu_barrier();
        kmem_cache_destroy(extent_state_cache);
        kmem_cache_destroy(extent_buffer_cache);
-       if (btrfs_bioset)
-               bioset_free(btrfs_bioset);
+       bioset_exit(&btrfs_bioset);
 }
 
 void extent_io_tree_init(struct extent_io_tree *tree,
@@ -2679,7 +2676,7 @@ struct bio *btrfs_bio_alloc(struct block_device *bdev, u64 first_byte)
 {
        struct bio *bio;
 
-       bio = bio_alloc_bioset(GFP_NOFS, BIO_MAX_PAGES, btrfs_bioset);
+       bio = bio_alloc_bioset(GFP_NOFS, BIO_MAX_PAGES, &btrfs_bioset);
        bio_set_dev(bio, bdev);
        bio->bi_iter.bi_sector = first_byte >> 9;
        btrfs_io_bio_init(btrfs_io_bio(bio));
@@ -2692,7 +2689,7 @@ struct bio *btrfs_bio_clone(struct bio *bio)
        struct bio *new;
 
        /* Bio allocation backed by a bioset does not fail */
-       new = bio_clone_fast(bio, GFP_NOFS, btrfs_bioset);
+       new = bio_clone_fast(bio, GFP_NOFS, &btrfs_bioset);
        btrfs_bio = btrfs_io_bio(new);
        btrfs_io_bio_init(btrfs_bio);
        btrfs_bio->iter = bio->bi_iter;
@@ -2704,7 +2701,7 @@ struct bio *btrfs_io_bio_alloc(unsigned int nr_iovecs)
        struct bio *bio;
 
        /* Bio allocation backed by a bioset does not fail */
-       bio = bio_alloc_bioset(GFP_NOFS, nr_iovecs, btrfs_bioset);
+       bio = bio_alloc_bioset(GFP_NOFS, nr_iovecs, &btrfs_bioset);
        btrfs_io_bio_init(btrfs_io_bio(bio));
        return bio;
 }
@@ -2715,7 +2712,7 @@ struct bio *btrfs_bio_clone_partial(struct bio *orig, int offset, int size)
        struct btrfs_io_bio *btrfs_bio;
 
        /* this will never fail when it's backed by a bioset */
-       bio = bio_clone_fast(orig, GFP_NOFS, btrfs_bioset);
+       bio = bio_clone_fast(orig, GFP_NOFS, &btrfs_bioset);
        ASSERT(bio);
 
        btrfs_bio = btrfs_io_bio(bio);