Btrfs: Fine tune the btree writeback exclusion some more
Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
@@ -214,6 +214,10 @@ static int btree_writepages(struct address_space *mapping,
|
|||||||
u64 num_dirty;
|
u64 num_dirty;
|
||||||
u64 start = 0;
|
u64 start = 0;
|
||||||
unsigned long thresh = 96 * 1024 * 1024;
|
unsigned long thresh = 96 * 1024 * 1024;
|
||||||
|
|
||||||
|
if (wbc->for_kupdate)
|
||||||
|
return 0;
|
||||||
|
|
||||||
num_dirty = count_range_bits(tree, &start, thresh, EXTENT_DIRTY);
|
num_dirty = count_range_bits(tree, &start, thresh, EXTENT_DIRTY);
|
||||||
if (num_dirty < thresh) {
|
if (num_dirty < thresh) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -767,6 +767,7 @@ static ssize_t btrfs_file_write(struct file *file, const char __user *buf,
|
|||||||
num_written += write_bytes;
|
num_written += write_bytes;
|
||||||
|
|
||||||
balance_dirty_pages_ratelimited_nr(inode->i_mapping, num_pages);
|
balance_dirty_pages_ratelimited_nr(inode->i_mapping, num_pages);
|
||||||
|
if (num_pages < (root->leafsize >> PAGE_CACHE_SHIFT) + 1)
|
||||||
btrfs_btree_balance_dirty(root, 1);
|
btrfs_btree_balance_dirty(root, 1);
|
||||||
cond_resched();
|
cond_resched();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user