Btrfs: return -1 when lzo compression makes data bigger
authorStefan Agner <[email protected]>
Mon, 1 Jul 2013 18:33:39 +0000 (20:33 +0200)
committerChris Mason <[email protected]>
Sun, 1 Sep 2013 11:57:19 +0000 (07:57 -0400)
With this fix the lzo code behaves like the zlib code by returning an
error
code when compression does not help reduce the size of the file.
This is currently not a bug since the compressed size is checked again
in
the calling method compress_file_range.

Signed-off-by: Stefan Agner <[email protected]>
Signed-off-by: Josef Bacik <[email protected]>
Signed-off-by: Chris Mason <[email protected]>
fs/btrfs/lzo.c

index f93151a98886d460bdf2c357c00a8c7613f2d08e..b6a6f07c5ce20fe4cecf6917497a6e705be26c9c 100644 (file)
@@ -207,8 +207,10 @@ static int lzo_compress_pages(struct list_head *ws,
                }
 
                /* we're making it bigger, give up */
-               if (tot_in > 8192 && tot_in < tot_out)
+               if (tot_in > 8192 && tot_in < tot_out) {
+                       ret = -1;
                        goto out;
+               }
 
                /* we're all done */
                if (tot_in >= len)