summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.h
diff options
context:
space:
mode:
authorChris Mason2007-10-15 22:22:39 +0200
committerChris Mason2008-09-25 17:03:57 +0200
commita6b6e75e096f436f0cc56edf5bca96301e194491 (patch)
tree03751594c29a7d70d317689fd6b5e44ee023633e /fs/btrfs/ctree.h
parentBtrfs: Add back file data checksumming (diff)
downloadkernel-qcow2-linux-a6b6e75e096f436f0cc56edf5bca96301e194491.tar.gz
kernel-qcow2-linux-a6b6e75e096f436f0cc56edf5bca96301e194491.tar.xz
kernel-qcow2-linux-a6b6e75e096f436f0cc56edf5bca96301e194491.zip
Btrfs: Defrag only leaves, and only when the parent node has a single objectid
This allows us to defrag huge directories, but skip the expensive defrag case in more common usage, where it does not help as much. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r--fs/btrfs/ctree.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 1af0a966f85b..37bccb1a9a75 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -913,7 +913,8 @@ int btrfs_search_slot(struct btrfs_trans_handle *trans, struct btrfs_root
ins_len, int cow);
int btrfs_realloc_node(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct extent_buffer *parent,
- int cache_only, u64 *last_ret);
+ int start_slot, int cache_only, u64 *last_ret,
+ struct btrfs_key *progress);
void btrfs_release_path(struct btrfs_root *root, struct btrfs_path *p);
struct btrfs_path *btrfs_alloc_path(void);
void btrfs_free_path(struct btrfs_path *p);