mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 02:09:42 +00:00
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: Timofey Titovets <nefelim4ag@gmail.com> Reviewed-by: David Sterba <dsterba@suse.com> [ changelog updated ] Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
c5e4c3d750
commit
170607ebd9
1 changed files with 3 additions and 4 deletions
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue