Messages in this thread | | | Date | Thu, 9 Jan 2020 02:10:25 +0100 | From | David Sterba <> | Subject | Re: [PATCH v4] btrfs: Use larger zlib buffer for s390 hardware compression |
| |
On Wed, Jan 08, 2020 at 07:48:31PM +0100, Zaslonko Mikhail wrote: > >> + } else if (workspace->strm.avail_out == 0) { > >> + /* get another page for the stream end */ > >> + kunmap(out_page); > >> + if (nr_pages == nr_dest_pages) { > >> + out_page = NULL; > >> + ret = -E2BIG; > >> + goto out; > >> + } > >> + out_page = alloc_page(GFP_NOFS | __GFP_HIGHMEM); > >> + if (out_page == NULL) { > >> + ret = -ENOMEM; > >> + goto out; > >> + } > > > > Do we need zlib_deflateEnd() for the above error cases? Thanks, > > The original btrfs code did not call zlib_deflateEnd() for -E2BIG and > -ENOMEM cases, so I stick to the same logic. > Unlike userspace zlib where deflateEnd() frees all dynamically allocated > memory, in the kernel it doesn't do much apart from setting the return > code (since all the memory allocations for kernel zlib are performed in advance).
Agreed, deflateEnd is not necessary in the error cases.
| |