summaryrefslogtreecommitdiff
path: root/libbcache/compress.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2017-03-03 21:09:52 -0900
committerKent Overstreet <kent.overstreet@gmail.com>2017-03-03 23:17:31 -0900
commit171ee48e57be78f4e95954c99851553fa523bf91 (patch)
tree5a54443f074f8f7922eda1451743bb9d2f60368e /libbcache/compress.c
parenta5b5eba7f788bb77cf57f9c94f3474a2d439ab0b (diff)
Delete more unused shim code, update bcache code
Diffstat (limited to 'libbcache/compress.c')
-rw-r--r--libbcache/compress.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libbcache/compress.c b/libbcache/compress.c
index e76850b..f81a814 100644
--- a/libbcache/compress.c
+++ b/libbcache/compress.c
@@ -119,6 +119,13 @@ static void bio_unmap_or_unbounce(struct cache_set *c, void *data,
}
}
+static inline void zlib_set_workspace(z_stream *strm, void *workspace)
+{
+#ifdef __KERNEL__
+ strm->workspace = workspace;
+#endif
+}
+
static int __bio_uncompress(struct cache_set *c, struct bio *src,
void *dst_data, struct bch_extent_crc128 crc)
{
@@ -150,11 +157,11 @@ static int __bio_uncompress(struct cache_set *c, struct bio *src,
workspace = c->zlib_workspace;
}
- strm.workspace = workspace;
strm.next_in = src_data;
strm.avail_in = src_len;
strm.next_out = dst_data;
strm.avail_out = dst_len;
+ zlib_set_workspace(&strm, workspace);
zlib_inflateInit2(&strm, -MAX_WBITS);
ret = zlib_inflate(&strm, Z_FINISH);
@@ -310,12 +317,12 @@ static int __bio_compress(struct cache_set *c,
workspace = c->zlib_workspace;
}
- strm.workspace = workspace;
strm.next_in = src_data;
strm.avail_in = min(src->bi_iter.bi_size,
dst->bi_iter.bi_size);
strm.next_out = dst_data;
strm.avail_out = dst->bi_iter.bi_size;
+ zlib_set_workspace(&strm, workspace);
zlib_deflateInit2(&strm, Z_DEFAULT_COMPRESSION,
Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL,
Z_DEFAULT_STRATEGY);