mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-12 03:26:26 +00:00
btrfs: use predefined limits for calculating maximum number of pages for compression
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
ff7638665c
commit
069eac7850
1 changed files with 6 additions and 5 deletions
|
@ -432,8 +432,6 @@ static noinline void compress_file_range(struct inode *inode,
|
||||||
unsigned long nr_pages;
|
unsigned long nr_pages;
|
||||||
unsigned long total_compressed = 0;
|
unsigned long total_compressed = 0;
|
||||||
unsigned long total_in = 0;
|
unsigned long total_in = 0;
|
||||||
unsigned long max_compressed = SZ_128K;
|
|
||||||
unsigned long max_uncompressed = SZ_128K;
|
|
||||||
int i;
|
int i;
|
||||||
int will_compress;
|
int will_compress;
|
||||||
int compress_type = fs_info->compress_type;
|
int compress_type = fs_info->compress_type;
|
||||||
|
@ -446,7 +444,9 @@ static noinline void compress_file_range(struct inode *inode,
|
||||||
again:
|
again:
|
||||||
will_compress = 0;
|
will_compress = 0;
|
||||||
nr_pages = (end >> PAGE_SHIFT) - (start >> PAGE_SHIFT) + 1;
|
nr_pages = (end >> PAGE_SHIFT) - (start >> PAGE_SHIFT) + 1;
|
||||||
nr_pages = min_t(unsigned long, nr_pages, SZ_128K / PAGE_SIZE);
|
BUILD_BUG_ON((BTRFS_MAX_COMPRESSED % PAGE_SIZE) != 0);
|
||||||
|
nr_pages = min_t(unsigned long, nr_pages,
|
||||||
|
BTRFS_MAX_COMPRESSED / PAGE_SIZE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* we don't want to send crud past the end of i_size through
|
* we don't want to send crud past the end of i_size through
|
||||||
|
@ -471,7 +471,8 @@ static noinline void compress_file_range(struct inode *inode,
|
||||||
(start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size))
|
(start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size))
|
||||||
goto cleanup_and_bail_uncompressed;
|
goto cleanup_and_bail_uncompressed;
|
||||||
|
|
||||||
total_compressed = min(total_compressed, max_uncompressed);
|
total_compressed = min_t(unsigned long, total_compressed,
|
||||||
|
BTRFS_MAX_UNCOMPRESSED);
|
||||||
num_bytes = ALIGN(end - start + 1, blocksize);
|
num_bytes = ALIGN(end - start + 1, blocksize);
|
||||||
num_bytes = max(blocksize, num_bytes);
|
num_bytes = max(blocksize, num_bytes);
|
||||||
total_in = 0;
|
total_in = 0;
|
||||||
|
@ -510,7 +511,7 @@ static noinline void compress_file_range(struct inode *inode,
|
||||||
&nr_pages,
|
&nr_pages,
|
||||||
&total_in,
|
&total_in,
|
||||||
&total_compressed,
|
&total_compressed,
|
||||||
max_compressed);
|
BTRFS_MAX_COMPRESSED);
|
||||||
|
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
unsigned long offset = total_compressed &
|
unsigned long offset = total_compressed &
|
||||||
|
|
Loading…
Reference in a new issue