diff options
Diffstat (limited to 'fs/bcachefs/util.c')
-rw-r--r-- | fs/bcachefs/util.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/fs/bcachefs/util.c b/fs/bcachefs/util.c index 8cd27d646f9c..60e1f1ff44eb 100644 --- a/fs/bcachefs/util.c +++ b/fs/bcachefs/util.c @@ -203,7 +203,7 @@ bool bch2_is_zero(const void *_p, size_t n) return true; } -void bch2_quantiles_update(struct quantiles *q, u64 v) +static void bch2_quantiles_update(struct quantiles *q, u64 v) { unsigned i = 0; @@ -788,20 +788,28 @@ void sort_cmp_size(void *base, size_t num, size_t size, } } -void mempool_free_vp(void *element, void *pool_data) +static void mempool_free_vp(void *element, void *pool_data) { size_t size = (size_t) pool_data; vpfree(element, size); } -void *mempool_alloc_vp(gfp_t gfp_mask, void *pool_data) +static void *mempool_alloc_vp(gfp_t gfp_mask, void *pool_data) { size_t size = (size_t) pool_data; return vpmalloc(size, gfp_mask); } +int mempool_init_kvpmalloc_pool(mempool_t *pool, int min_nr, size_t size) +{ + return size < PAGE_SIZE + ? mempool_init_kmalloc_pool(pool, min_nr, size) + : mempool_init(pool, min_nr, mempool_alloc_vp, + mempool_free_vp, (void *) size); +} + #if 0 void eytzinger1_test(void) { |