Re: [PATCH 10/12] btrfs: convert to bioset_init()/mempool_init()

2018-05-30 Thread Chris Mason

On 20 May 2018, at 18:25, Kent Overstreet wrote:


Signed-off-by: Kent Overstreet 
---
 fs/btrfs/extent_io.c | 25 +++--
 1 file changed, 11 insertions(+), 14 deletions(-)



Assuming the rest of the comments/questions for the series get worked 
out, the btrfs side of this looks fine.


Acked-by: Chris Mason 



[PATCH 10/12] btrfs: convert to bioset_init()/mempool_init()

2018-05-20 Thread Kent Overstreet
Signed-off-by: Kent Overstreet 
---
 fs/btrfs/extent_io.c | 25 +++--
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index e99b329002..56d32bb462 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -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);
-- 
2.17.0