if (ret != LZO_E_OK) {
                        printk(KERN_DEBUG "BTRFS: deflate in loop returned %d\n",
                               ret);
-                       ret = -1;
+                       ret = -EIO;
                        goto out;
                }
 
                                kunmap(out_page);
                                if (nr_pages == nr_dest_pages) {
                                        out_page = NULL;
-                                       ret = -1;
+                                       ret = -E2BIG;
                                        goto out;
                                }
 
 
                /* we're making it bigger, give up */
                if (tot_in > 8192 && tot_in < tot_out) {
-                       ret = -1;
+                       ret = -E2BIG;
                        goto out;
                }
 
                                        break;
 
                                if (page_in_index + 1 >= total_pages_in) {
-                                       ret = -1;
+                                       ret = -EIO;
                                        goto done;
                                }
 
                        kunmap(pages_in[page_in_index - 1]);
                if (ret != LZO_E_OK) {
                        printk(KERN_WARNING "BTRFS: decompress failed\n");
-                       ret = -1;
+                       ret = -EIO;
                        break;
                }
 
        ret = lzo1x_decompress_safe(data_in, in_len, workspace->buf, &out_len);
        if (ret != LZO_E_OK) {
                printk(KERN_WARNING "BTRFS: decompress failed!\n");
-               ret = -1;
+               ret = -EIO;
                goto out;
        }
 
        if (out_len < start_byte) {
-               ret = -1;
+               ret = -EIO;
                goto out;
        }
 
 
 
        if (Z_OK != zlib_deflateInit(&workspace->def_strm, 3)) {
                printk(KERN_WARNING "BTRFS: deflateInit failed\n");
-               ret = -1;
+               ret = -EIO;
                goto out;
        }
 
 
        out_page = alloc_page(GFP_NOFS | __GFP_HIGHMEM);
        if (out_page == NULL) {
-               ret = -1;
+               ret = -ENOMEM;
                goto out;
        }
        cpage_out = kmap(out_page);
                        printk(KERN_DEBUG "BTRFS: deflate in loop returned %d\n",
                               ret);
                        zlib_deflateEnd(&workspace->def_strm);
-                       ret = -1;
+                       ret = -EIO;
                        goto out;
                }
 
                if (workspace->def_strm.total_in > 8192 &&
                    workspace->def_strm.total_in <
                    workspace->def_strm.total_out) {
-                       ret = -1;
+                       ret = -EIO;
                        goto out;
                }
                /* we need another page for writing out.  Test this
                        kunmap(out_page);
                        if (nr_pages == nr_dest_pages) {
                                out_page = NULL;
-                               ret = -1;
+                               ret = -E2BIG;
                                goto out;
                        }
                        out_page = alloc_page(GFP_NOFS | __GFP_HIGHMEM);
                        if (out_page == NULL) {
-                               ret = -1;
+                               ret = -ENOMEM;
                                goto out;
                        }
                        cpage_out = kmap(out_page);
        zlib_deflateEnd(&workspace->def_strm);
 
        if (ret != Z_STREAM_END) {
-               ret = -1;
+               ret = -EIO;
                goto out;
        }
 
        if (workspace->def_strm.total_out >= workspace->def_strm.total_in) {
-               ret = -1;
+               ret = -E2BIG;
                goto out;
        }
 
 
        if (Z_OK != zlib_inflateInit2(&workspace->inf_strm, wbits)) {
                printk(KERN_WARNING "BTRFS: inflateInit failed\n");
-               return -1;
+               return -EIO;
        }
        while (workspace->inf_strm.total_in < srclen) {
                ret = zlib_inflate(&workspace->inf_strm, Z_NO_FLUSH);
                }
        }
        if (ret != Z_STREAM_END)
-               ret = -1;
+               ret = -EIO;
        else
                ret = 0;
 done:
 
        if (Z_OK != zlib_inflateInit2(&workspace->inf_strm, wbits)) {
                printk(KERN_WARNING "BTRFS: inflateInit failed\n");
-               return -1;
+               return -EIO;
        }
 
        while (bytes_left > 0) {
                total_out = workspace->inf_strm.total_out;
 
                if (total_out == buf_start) {
-                       ret = -1;
+                       ret = -EIO;
                        break;
                }
 
        }
 
        if (ret != Z_STREAM_END && bytes_left != 0)
-               ret = -1;
+               ret = -EIO;
        else
                ret = 0;