Commit 170607eb authored by Timofey Titovets's avatar Timofey Titovets Committed by David Sterba

Btrfs: compression must free at least one sector size

We already skip storing data where compression does not make the result
at least one byte less.  Let's make the logic better and check
that compression frees at least one sector size of bytes, otherwise it's
not that useful.
Signed-off-by: default avatarTimofey Titovets <nefelim4ag@gmail.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
[ changelog updated ]
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent c5e4c3d7
......@@ -607,12 +607,11 @@ static noinline void compress_file_range(struct inode *inode,
/*
* one last check to make sure the compression is really a
* win, compare the page count read with the blocks on disk
* win, compare the page count read with the blocks on disk,
* compression must free at least one sector size
*/
total_in = ALIGN(total_in, PAGE_SIZE);
if (total_compressed >= total_in) {
will_compress = 0;
} else {
if (total_compressed + blocksize <= total_in) {
num_bytes = total_in;
*num_added += 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment