u64 start, struct page **pages,
                         unsigned long *out_pages,
                         unsigned long *total_in,
-                        unsigned long *total_out,
-                        unsigned long max_out)
+                        unsigned long *total_out)
 {
        struct list_head *workspace;
        int ret;
        ret = btrfs_compress_op[type-1]->compress_pages(workspace, mapping,
                                                      start, pages,
                                                      out_pages,
-                                                     total_in, total_out,
-                                                     max_out);
+                                                     total_in, total_out);
        free_workspace(type, workspace);
        return ret;
 }
 
                         u64 start, struct page **pages,
                         unsigned long *out_pages,
                         unsigned long *total_in,
-                        unsigned long *total_out,
-                        unsigned long max_out);
+                        unsigned long *total_out);
 int btrfs_decompress(int type, unsigned char *data_in, struct page *dest_page,
                     unsigned long start_byte, size_t srclen, size_t destlen);
 int btrfs_decompress_buf2page(const char *buf, unsigned long buf_start,
                              struct page **pages,
                              unsigned long *out_pages,
                              unsigned long *total_in,
-                             unsigned long *total_out,
-                             unsigned long max_out);
+                             unsigned long *total_out);
 
        int (*decompress_bio)(struct list_head *workspace,
                                 struct page **pages_in,
 
                                           pages,
                                           &nr_pages,
                                           &total_in,
-                                          &total_compressed,
-                                          BTRFS_MAX_COMPRESSED);
+                                          &total_compressed);
 
                if (!ret) {
                        unsigned long offset = total_compressed &
 
                              struct page **pages,
                              unsigned long *out_pages,
                              unsigned long *total_in,
-                             unsigned long *total_out,
-                             unsigned long max_out)
+                             unsigned long *total_out)
 {
        struct workspace *workspace = list_entry(ws, struct workspace, list);
        int ret = 0;
        unsigned long bytes_left;
        unsigned long len = *total_out;
        unsigned long nr_dest_pages = *out_pages;
+       const unsigned long max_out = nr_dest_pages * PAGE_SIZE;
        size_t in_len;
        size_t out_len;
        char *buf;
 
                               struct page **pages,
                               unsigned long *out_pages,
                               unsigned long *total_in,
-                              unsigned long *total_out,
-                              unsigned long max_out)
+                              unsigned long *total_out)
 {
        struct workspace *workspace = list_entry(ws, struct workspace, list);
        int ret;
        unsigned long bytes_left;
        unsigned long len = *total_out;
        unsigned long nr_dest_pages = *out_pages;
+       const unsigned long max_out = nr_dest_pages * PAGE_SIZE;
 
        *out_pages = 0;
        *total_out = 0;