diff --git a/fs/btrfs/lzo.c b/fs/btrfs/lzo.c index a554856a5f8a6f45d61a83906c8d9ee3869641c0..7e8b0d6a7961f355302da4567387c4f427099f42 100644 --- a/fs/btrfs/lzo.c +++ b/fs/btrfs/lzo.c @@ -230,8 +230,10 @@ static int lzo_compress_pages(struct list_head *ws, in_len = min(bytes_left, PAGE_SIZE); } - if (tot_out > tot_in) + if (tot_out >= tot_in) { + ret = -E2BIG; goto out; + } /* store the size of all chunks of compressed data */ cpage_out = kmap(pages[0]);