summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2017-02-14 19:36:54 +0100
committerDavid Sterba <dsterba@suse.com>2017-02-28 14:26:35 +0100
commit069eac7850890acf0d3c21a6c8ca9f33ddb34a0d (patch)
tree6381ce67a65e598c8394c4063064e4b999bcd7e6 /fs
parentbtrfs: export compression buffer limits in a header (diff)
downloadlinux-069eac7850890acf0d3c21a6c8ca9f33ddb34a0d.tar.xz
linux-069eac7850890acf0d3c21a6c8ca9f33ddb34a0d.zip
btrfs: use predefined limits for calculating maximum number of pages for compression
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/inode.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 77fb24b94a9e..11a4eeadf662 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -432,8 +432,6 @@ static noinline void compress_file_range(struct inode *inode,
unsigned long nr_pages;
unsigned long total_compressed = 0;
unsigned long total_in = 0;
- unsigned long max_compressed = SZ_128K;
- unsigned long max_uncompressed = SZ_128K;
int i;
int will_compress;
int compress_type = fs_info->compress_type;
@@ -446,7 +444,9 @@ static noinline void compress_file_range(struct inode *inode,
again:
will_compress = 0;
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
@@ -471,7 +471,8 @@ again:
(start > 0 || end + 1 < BTRFS_I(inode)->disk_i_size))
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 = max(blocksize, num_bytes);
total_in = 0;
@@ -510,7 +511,7 @@ again:
&nr_pages,
&total_in,
&total_compressed,
- max_compressed);
+ BTRFS_MAX_COMPRESSED);
if (!ret) {
unsigned long offset = total_compressed &