On 2018/5/21 6:25 AM, Kent Overstreet wrote:
> Signed-off-by: Kent Overstreet <kent.overstr...@gmail.com>
Hi Kent,
This change looks good to me,
Reviewed-by: Coly Li <col...@suse.de>
Thanks.
Coly Li
> ---
> drivers/md/bcache/bcache.h | 10 +-
> drivers/md/bcache/bset.c| 13 -
> drivers/md/bcache/bset.h| 2 +-
> drivers/md/bcache/btree.c | 4 ++--
> drivers/md/bcache/io.c | 4 ++--
> drivers/md/bcache/request.c | 18 +-
> drivers/md/bcache/super.c | 38 ++---
> 7 files changed, 37 insertions(+), 52 deletions(-)
>
> diff --git a/drivers/md/bcache/bcache.h b/drivers/md/bcache/bcache.h
> index 3a0cfb237a..3050438761 100644
> --- a/drivers/md/bcache/bcache.h
> +++ b/drivers/md/bcache/bcache.h
> @@ -269,7 +269,7 @@ struct bcache_device {
> atomic_t*stripe_sectors_dirty;
> unsigned long *full_dirty_stripes;
>
> - struct bio_set *bio_split;
> + struct bio_set bio_split;
>
> unsigneddata_csum:1;
>
> @@ -528,9 +528,9 @@ struct cache_set {
> struct closure sb_write;
> struct semaphoresb_write_mutex;
>
> - mempool_t *search;
> - mempool_t *bio_meta;
> - struct bio_set *bio_split;
> + mempool_t search;
> + mempool_t bio_meta;
> + struct bio_set bio_split;
>
> /* For the btree cache */
> struct shrinker shrink;
> @@ -655,7 +655,7 @@ struct cache_set {
>* A btree node on disk could have too many bsets for an iterator to fit
>* on the stack - have to dynamically allocate them
>*/
> - mempool_t *fill_iter;
> + mempool_t fill_iter;
>
> struct bset_sort_state sort;
>
> diff --git a/drivers/md/bcache/bset.c b/drivers/md/bcache/bset.c
> index 579c696a5f..f3403b45bc 100644
> --- a/drivers/md/bcache/bset.c
> +++ b/drivers/md/bcache/bset.c
> @@ -1118,8 +1118,7 @@ struct bkey *bch_btree_iter_next_filter(struct
> btree_iter *iter,
>
> void bch_bset_sort_state_free(struct bset_sort_state *state)
> {
> - if (state->pool)
> - mempool_destroy(state->pool);
> + mempool_exit(>pool);
> }
>
> int bch_bset_sort_state_init(struct bset_sort_state *state, unsigned
> page_order)
> @@ -1129,11 +1128,7 @@ int bch_bset_sort_state_init(struct bset_sort_state
> *state, unsigned page_order)
> state->page_order = page_order;
> state->crit_factor = int_sqrt(1 << page_order);
>
> - state->pool = mempool_create_page_pool(1, page_order);
> - if (!state->pool)
> - return -ENOMEM;
> -
> - return 0;
> + return mempool_init_page_pool(>pool, 1, page_order);
> }
> EXPORT_SYMBOL(bch_bset_sort_state_init);
>
> @@ -1191,7 +1186,7 @@ static void __btree_sort(struct btree_keys *b, struct
> btree_iter *iter,
>
> BUG_ON(order > state->page_order);
>
> - outp = mempool_alloc(state->pool, GFP_NOIO);
> + outp = mempool_alloc(>pool, GFP_NOIO);
> out = page_address(outp);
> used_mempool = true;
> order = state->page_order;
> @@ -1220,7 +1215,7 @@ static void __btree_sort(struct btree_keys *b, struct
> btree_iter *iter,
> }
>
> if (used_mempool)
> - mempool_free(virt_to_page(out), state->pool);
> + mempool_free(virt_to_page(out), >pool);
> else
> free_pages((unsigned long) out, order);
>
> diff --git a/drivers/md/bcache/bset.h b/drivers/md/bcache/bset.h
> index 0c24280f3b..b867f22004 100644
> --- a/drivers/md/bcache/bset.h
> +++ b/drivers/md/bcache/bset.h
> @@ -347,7 +347,7 @@ static inline struct bkey *bch_bset_search(struct
> btree_keys *b,
> /* Sorting */
>
> struct bset_sort_state {
> - mempool_t *pool;
> + mempool_t pool;
>
> unsignedpage_order;
> unsignedcrit_factor;
> diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
> index 17936b2dc7..2a0968c04e 100644
> --- a/drivers/md/bcache/btree.c
> +++ b/drivers/md/bcache/btree.c
> @@ -204,7 +204,7 @@ void bch_btree_node_read_done(struct btree *b)
> struct bset *i = btree_bset_first(b);
> struct btree_iter *iter;
>
> - iter = mempool_alloc(b->c->fill_iter, GFP_NOIO);
> + iter = mempool_alloc(>c->fill_iter, GFP_NOIO);
> iter->size = b->c-&