diff options
author | Chris Mason <chris.mason@oracle.com> | 2007-11-27 10:52:01 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:03:58 -0400 |
commit | 448d640b668dae3928591e83f2bf4ca9f4c06e52 (patch) | |
tree | e2cb5deb84444257ad6ed4412a9ec8469df8e935 | |
parent | 8790bad7fb5ac4929dcd52c5dd8d6b81f8c05be8 (diff) |
Btrfs: Fine tune the btree writeback exclusion some more
Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r-- | fs/btrfs/disk-io.c | 4 | ||||
-rw-r--r-- | fs/btrfs/file.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 8a74f9027d65..de0552532d23 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -214,6 +214,10 @@ static int btree_writepages(struct address_space *mapping, | |||
214 | u64 num_dirty; | 214 | u64 num_dirty; |
215 | u64 start = 0; | 215 | u64 start = 0; |
216 | unsigned long thresh = 96 * 1024 * 1024; | 216 | unsigned long thresh = 96 * 1024 * 1024; |
217 | |||
218 | if (wbc->for_kupdate) | ||
219 | return 0; | ||
220 | |||
217 | num_dirty = count_range_bits(tree, &start, thresh, EXTENT_DIRTY); | 221 | num_dirty = count_range_bits(tree, &start, thresh, EXTENT_DIRTY); |
218 | if (num_dirty < thresh) { | 222 | if (num_dirty < thresh) { |
219 | return 0; | 223 | return 0; |
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 9dd2c5c23b56..ba624ae16e61 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -767,7 +767,8 @@ static ssize_t btrfs_file_write(struct file *file, const char __user *buf, | |||
767 | num_written += write_bytes; | 767 | num_written += write_bytes; |
768 | 768 | ||
769 | balance_dirty_pages_ratelimited_nr(inode->i_mapping, num_pages); | 769 | balance_dirty_pages_ratelimited_nr(inode->i_mapping, num_pages); |
770 | btrfs_btree_balance_dirty(root, 1); | 770 | if (num_pages < (root->leafsize >> PAGE_CACHE_SHIFT) + 1) |
771 | btrfs_btree_balance_dirty(root, 1); | ||
771 | cond_resched(); | 772 | cond_resched(); |
772 | } | 773 | } |
773 | mutex_unlock(&inode->i_mutex); | 774 | mutex_unlock(&inode->i_mutex); |