diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-05-17 01:38:57 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-05-17 02:36:19 -0400 |
commit | ff86d4722124c300c40b85b6eb8ef2d410ab303c (patch) | |
tree | 05e54b0bf6397ecbb5e7717a7925ac6ed2645a68 /libbcachefs/compress.c | |
parent | 800408be11898f6d53ceecfd894cce8860fda26a (diff) |
Update bcachefs sources to 0906b1fb49 bcachefs: fixes for 32 bit/big endian machines
Diffstat (limited to 'libbcachefs/compress.c')
-rw-r--r-- | libbcachefs/compress.c | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/libbcachefs/compress.c b/libbcachefs/compress.c index 1af62621..6379905b 100644 --- a/libbcachefs/compress.c +++ b/libbcachefs/compress.c @@ -480,7 +480,7 @@ static const unsigned bch2_compression_opt_to_feature[] = { #undef BCH_FEATURE_NONE -int __bch2_check_set_has_compressed_data(struct bch_fs *c, u64 f) +static int __bch2_check_set_has_compressed_data(struct bch_fs *c, u64 f) { int ret = 0; @@ -529,26 +529,6 @@ void bch2_fs_compress_exit(struct bch_fs *c) mempool_exit(&c->compression_bounce[READ]); } -static void *mempool_kvpmalloc(gfp_t gfp_mask, void *pool_data) -{ - size_t size = (size_t)pool_data; - return kvpmalloc(size, gfp_mask); -} - -void mempool_kvpfree(void *element, void *pool_data) -{ - size_t size = (size_t)pool_data; - kvpfree(element, size); -} - -static int mempool_init_kvpmalloc_pool(mempool_t *pool, int min_nr, size_t size) -{ - return !mempool_initialized(pool) - ? mempool_init(pool, min_nr, mempool_kvpmalloc, - mempool_kvpfree, (void *) size) - : 0; -} - static int __bch2_fs_compress_init(struct bch_fs *c, u64 features) { size_t max_extent = c->sb.encoded_extent_max << 9; @@ -611,6 +591,9 @@ have_compressed: if (i->decompress_workspace) decompress_workspace_needed = true; + if (mempool_initialized(&c->compress_workspace[i->type])) + continue; + ret = mempool_init_kvpmalloc_pool( &c->compress_workspace[i->type], 1, i->compress_workspace); |