aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2009-05-18 10:41:58 -0400
committerChris Mason <chris.mason@oracle.com>2009-06-10 11:29:47 -0400
commitcfbb9308463f6dad1334884db046ccf0f1a77918 (patch)
tree12faa0d785c3e3adec21770db7112514d834f77b /fs/btrfs
parentb36124210248706186a02093427bdff4b3f548e8 (diff)
Btrfs: balance btree more often
With the new back reference code, the cost of a balance has gone down in terms of the number of back reference updates done. This commit makes us more aggressively balance leaves and nodes as they become less full. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/ctree.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 2f633e751198..60a45f3a4e91 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -1651,7 +1651,7 @@ setup_nodes_for_search(struct btrfs_trans_handle *trans,
1651 } 1651 }
1652 b = p->nodes[level]; 1652 b = p->nodes[level];
1653 } else if (ins_len < 0 && btrfs_header_nritems(b) < 1653 } else if (ins_len < 0 && btrfs_header_nritems(b) <
1654 BTRFS_NODEPTRS_PER_BLOCK(root) / 4) { 1654 BTRFS_NODEPTRS_PER_BLOCK(root) / 2) {
1655 int sret; 1655 int sret;
1656 1656
1657 sret = reada_for_balance(root, p, level); 1657 sret = reada_for_balance(root, p, level);
@@ -3807,7 +3807,7 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root,
3807 } 3807 }
3808 3808
3809 /* delete the leaf if it is mostly empty */ 3809 /* delete the leaf if it is mostly empty */
3810 if (used < BTRFS_LEAF_DATA_SIZE(root) / 4) { 3810 if (used < BTRFS_LEAF_DATA_SIZE(root) / 2) {
3811 /* push_leaf_left fixes the path. 3811 /* push_leaf_left fixes the path.
3812 * make sure the path still points to our leaf 3812 * make sure the path still points to our leaf
3813 * for possible call to del_ptr below 3813 * for possible call to del_ptr below