aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ctree.c
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@fusionio.com>2013-10-22 12:18:51 -0400
committerChris Mason <clm@fb.com>2014-01-28 16:19:21 -0500
commit16e7549f045d33b0c5b0ebf19d08439e9221d40c (patch)
treea7f3c3bbe5fa0cf6bf821f3a26d8969647dfd20d /fs/btrfs/ctree.c
parentd8ec26d7f8287f5788a494f56e8814210f0e64be (diff)
Btrfs: incompatible format change to remove hole extents
Btrfs has always had these filler extent data items for holes in inodes. This has made somethings very easy, like logging hole punches and sending hole punches. However for large holey files these extent data items are pure overhead. So add an incompatible feature to no longer add hole extents to reduce the amount of metadata used by these sort of files. This has a few changes for logging and send obviously since they will need to detect holes and log/send the holes if there are any. I've tested this thoroughly with xfstests and it doesn't cause any issues with and without the incompat format set. Thanks, Signed-off-by: Josef Bacik <jbacik@fusionio.com> Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/ctree.c')
-rw-r--r--fs/btrfs/ctree.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 316136bd6dd7..bcd0bd85e3ed 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -41,7 +41,6 @@ static void del_ptr(struct btrfs_root *root, struct btrfs_path *path,
41 int level, int slot); 41 int level, int slot);
42static void tree_mod_log_free_eb(struct btrfs_fs_info *fs_info, 42static void tree_mod_log_free_eb(struct btrfs_fs_info *fs_info,
43 struct extent_buffer *eb); 43 struct extent_buffer *eb);
44static int btrfs_prev_leaf(struct btrfs_root *root, struct btrfs_path *path);
45 44
46struct btrfs_path *btrfs_alloc_path(void) 45struct btrfs_path *btrfs_alloc_path(void)
47{ 46{
@@ -4817,7 +4816,7 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root,
4817 * This may release the path, and so you may lose any locks held at the 4816 * This may release the path, and so you may lose any locks held at the
4818 * time you call it. 4817 * time you call it.
4819 */ 4818 */
4820static int btrfs_prev_leaf(struct btrfs_root *root, struct btrfs_path *path) 4819int btrfs_prev_leaf(struct btrfs_root *root, struct btrfs_path *path)
4821{ 4820{
4822 struct btrfs_key key; 4821 struct btrfs_key key;
4823 struct btrfs_disk_key found_key; 4822 struct btrfs_disk_key found_key;