summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/tree-defrag.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2007-10-25 21:43:18 +0200
committerChris Mason <chris.mason@oracle.com>2008-09-25 17:03:57 +0200
commit5708b9591617486bf1aa5b1a97f2c0549ec87933 (patch)
treee2d5f219c090ecda4bc9265027b41be2c70a57ad /fs/btrfs/tree-defrag.c
parentBtrfs: Fix for insert_inline_extent to handle offset != 0 (diff)
downloadlinux-5708b9591617486bf1aa5b1a97f2c0549ec87933.tar.xz
linux-5708b9591617486bf1aa5b1a97f2c0549ec87933.zip
Btrfs: Tune the automatic defrag code
1) Forced defrag wasn't working properly (btrfsctl -d) because some cache only checks were incorrect. 2) Defrag only the leaves unless in forced defrag mode. 3) Don't use complex logic to figure out if a leaf is needs defrag Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/tree-defrag.c')
-rw-r--r--fs/btrfs/tree-defrag.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/btrfs/tree-defrag.c b/fs/btrfs/tree-defrag.c
index b02355a7b143..65ef12351566 100644
--- a/fs/btrfs/tree-defrag.c
+++ b/fs/btrfs/tree-defrag.c
@@ -183,7 +183,6 @@ int btrfs_defrag_leaves(struct btrfs_trans_handle *trans,
if (level == 0) {
goto out;
}
-
if (root->defrag_progress.objectid == 0) {
extent_buffer_get(root->node);
ret = btrfs_cow_block(trans, root, root->node, NULL, 0, &tmp);