Lines Matching refs:workspace

26 struct workspace {  struct
39 struct workspace *workspace = list_entry(ws, struct workspace, list); in zlib_get_workspace() argument
41 workspace->level = level; in zlib_get_workspace()
48 struct workspace *workspace = list_entry(ws, struct workspace, list); in zlib_free_workspace() local
50 kvfree(workspace->strm.workspace); in zlib_free_workspace()
51 kfree(workspace->buf); in zlib_free_workspace()
52 kfree(workspace); in zlib_free_workspace()
57 struct workspace *workspace; in zlib_alloc_workspace() local
60 workspace = kzalloc(sizeof(*workspace), GFP_KERNEL); in zlib_alloc_workspace()
61 if (!workspace) in zlib_alloc_workspace()
66 workspace->strm.workspace = kvmalloc(workspacesize, GFP_KERNEL); in zlib_alloc_workspace()
67 workspace->level = level; in zlib_alloc_workspace()
68 workspace->buf = NULL; in zlib_alloc_workspace()
74 workspace->buf = kmalloc(ZLIB_DFLTCC_BUF_SIZE, in zlib_alloc_workspace()
77 workspace->buf_size = ZLIB_DFLTCC_BUF_SIZE; in zlib_alloc_workspace()
79 if (!workspace->buf) { in zlib_alloc_workspace()
80 workspace->buf = kmalloc(PAGE_SIZE, GFP_KERNEL); in zlib_alloc_workspace()
81 workspace->buf_size = PAGE_SIZE; in zlib_alloc_workspace()
83 if (!workspace->strm.workspace || !workspace->buf) in zlib_alloc_workspace()
86 INIT_LIST_HEAD(&workspace->list); in zlib_alloc_workspace()
88 return &workspace->list; in zlib_alloc_workspace()
90 zlib_free_workspace(&workspace->list); in zlib_alloc_workspace()
98 struct workspace *workspace = list_entry(ws, struct workspace, list); in zlib_compress_pages() local
115 if (Z_OK != zlib_deflateInit(&workspace->strm, workspace->level)) { in zlib_compress_pages()
121 workspace->strm.total_in = 0; in zlib_compress_pages()
122 workspace->strm.total_out = 0; in zlib_compress_pages()
133 workspace->strm.next_in = workspace->buf; in zlib_compress_pages()
134 workspace->strm.avail_in = 0; in zlib_compress_pages()
135 workspace->strm.next_out = cpage_out; in zlib_compress_pages()
136 workspace->strm.avail_out = PAGE_SIZE; in zlib_compress_pages()
138 while (workspace->strm.total_in < len) { in zlib_compress_pages()
143 if (workspace->strm.avail_in == 0) { in zlib_compress_pages()
144 bytes_left = len - workspace->strm.total_in; in zlib_compress_pages()
146 workspace->buf_size / PAGE_SIZE); in zlib_compress_pages()
158 memcpy(workspace->buf + i * PAGE_SIZE, in zlib_compress_pages()
162 workspace->strm.next_in = workspace->buf; in zlib_compress_pages()
172 workspace->strm.next_in = data_in; in zlib_compress_pages()
174 workspace->strm.avail_in = min(bytes_left, in zlib_compress_pages()
175 (unsigned long) workspace->buf_size); in zlib_compress_pages()
178 ret = zlib_deflate(&workspace->strm, Z_SYNC_FLUSH); in zlib_compress_pages()
182 zlib_deflateEnd(&workspace->strm); in zlib_compress_pages()
188 if (workspace->strm.total_in > 8192 && in zlib_compress_pages()
189 workspace->strm.total_in < in zlib_compress_pages()
190 workspace->strm.total_out) { in zlib_compress_pages()
198 if (workspace->strm.avail_out == 0) { in zlib_compress_pages()
213 workspace->strm.avail_out = PAGE_SIZE; in zlib_compress_pages()
214 workspace->strm.next_out = cpage_out; in zlib_compress_pages()
217 if (workspace->strm.total_in >= len) in zlib_compress_pages()
219 if (workspace->strm.total_out > max_out) in zlib_compress_pages()
222 workspace->strm.avail_in = 0; in zlib_compress_pages()
228 ret = zlib_deflate(&workspace->strm, Z_FINISH); in zlib_compress_pages()
232 zlib_deflateEnd(&workspace->strm); in zlib_compress_pages()
235 } else if (workspace->strm.avail_out == 0) { in zlib_compress_pages()
251 workspace->strm.avail_out = PAGE_SIZE; in zlib_compress_pages()
252 workspace->strm.next_out = cpage_out; in zlib_compress_pages()
255 zlib_deflateEnd(&workspace->strm); in zlib_compress_pages()
257 if (workspace->strm.total_out >= workspace->strm.total_in) { in zlib_compress_pages()
263 *total_out = workspace->strm.total_out; in zlib_compress_pages()
264 *total_in = workspace->strm.total_in; in zlib_compress_pages()
279 struct workspace *workspace = list_entry(ws, struct workspace, list); in zlib_decompress_bio() local
291 workspace->strm.next_in = data_in; in zlib_decompress_bio()
292 workspace->strm.avail_in = min_t(size_t, srclen, PAGE_SIZE); in zlib_decompress_bio()
293 workspace->strm.total_in = 0; in zlib_decompress_bio()
295 workspace->strm.total_out = 0; in zlib_decompress_bio()
296 workspace->strm.next_out = workspace->buf; in zlib_decompress_bio()
297 workspace->strm.avail_out = workspace->buf_size; in zlib_decompress_bio()
306 workspace->strm.next_in += 2; in zlib_decompress_bio()
307 workspace->strm.avail_in -= 2; in zlib_decompress_bio()
310 if (Z_OK != zlib_inflateInit2(&workspace->strm, wbits)) { in zlib_decompress_bio()
315 while (workspace->strm.total_in < srclen) { in zlib_decompress_bio()
316 ret = zlib_inflate(&workspace->strm, Z_NO_FLUSH); in zlib_decompress_bio()
321 total_out = workspace->strm.total_out; in zlib_decompress_bio()
327 ret2 = btrfs_decompress_buf2page(workspace->buf, in zlib_decompress_bio()
334 workspace->strm.next_out = workspace->buf; in zlib_decompress_bio()
335 workspace->strm.avail_out = workspace->buf_size; in zlib_decompress_bio()
337 if (workspace->strm.avail_in == 0) { in zlib_decompress_bio()
346 workspace->strm.next_in = data_in; in zlib_decompress_bio()
347 tmp = srclen - workspace->strm.total_in; in zlib_decompress_bio()
348 workspace->strm.avail_in = min(tmp, PAGE_SIZE); in zlib_decompress_bio()
356 zlib_inflateEnd(&workspace->strm); in zlib_decompress_bio()
368 struct workspace *workspace = list_entry(ws, struct workspace, list); in zlib_decompress() local
378 workspace->strm.next_in = data_in; in zlib_decompress()
379 workspace->strm.avail_in = srclen; in zlib_decompress()
380 workspace->strm.total_in = 0; in zlib_decompress()
382 workspace->strm.next_out = workspace->buf; in zlib_decompress()
383 workspace->strm.avail_out = workspace->buf_size; in zlib_decompress()
384 workspace->strm.total_out = 0; in zlib_decompress()
392 workspace->strm.next_in += 2; in zlib_decompress()
393 workspace->strm.avail_in -= 2; in zlib_decompress()
396 if (Z_OK != zlib_inflateInit2(&workspace->strm, wbits)) { in zlib_decompress()
406 ret = zlib_inflate(&workspace->strm, Z_NO_FLUSH); in zlib_decompress()
411 total_out = workspace->strm.total_out; in zlib_decompress()
431 workspace->buf + buf_offset, bytes); in zlib_decompress()
436 workspace->strm.next_out = workspace->buf; in zlib_decompress()
437 workspace->strm.avail_out = workspace->buf_size; in zlib_decompress()
445 zlib_inflateEnd(&workspace->strm); in zlib_decompress()