diff options
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r-- | fs/btrfs/ctree.h | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index c5a18d5d7f7c..42aa20301bc9 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -178,6 +178,7 @@ struct btrfs_path { | |||
178 | struct buffer_head *nodes[BTRFS_MAX_LEVEL]; | 178 | struct buffer_head *nodes[BTRFS_MAX_LEVEL]; |
179 | int slots[BTRFS_MAX_LEVEL]; | 179 | int slots[BTRFS_MAX_LEVEL]; |
180 | int reada; | 180 | int reada; |
181 | int lowest_level; | ||
181 | }; | 182 | }; |
182 | 183 | ||
183 | /* | 184 | /* |
@@ -338,6 +339,9 @@ struct btrfs_root { | |||
338 | u64 highest_inode; | 339 | u64 highest_inode; |
339 | u64 last_inode_alloc; | 340 | u64 last_inode_alloc; |
340 | int ref_cows; | 341 | int ref_cows; |
342 | struct btrfs_key defrag_progress; | ||
343 | int defrag_running; | ||
344 | int defrag_level; | ||
341 | }; | 345 | }; |
342 | 346 | ||
343 | /* the lower bits in the key flags defines the item type */ | 347 | /* the lower bits in the key flags defines the item type */ |
@@ -1031,10 +1035,11 @@ struct btrfs_block_group_cache *btrfs_find_block_group(struct btrfs_root *root, | |||
1031 | int btrfs_inc_root_ref(struct btrfs_trans_handle *trans, | 1035 | int btrfs_inc_root_ref(struct btrfs_trans_handle *trans, |
1032 | struct btrfs_root *root); | 1036 | struct btrfs_root *root); |
1033 | struct buffer_head *btrfs_alloc_free_block(struct btrfs_trans_handle *trans, | 1037 | struct buffer_head *btrfs_alloc_free_block(struct btrfs_trans_handle *trans, |
1034 | struct btrfs_root *root, u64 hint); | 1038 | struct btrfs_root *root, u64 hint, |
1039 | u64 empty_size); | ||
1035 | int btrfs_alloc_extent(struct btrfs_trans_handle *trans, | 1040 | int btrfs_alloc_extent(struct btrfs_trans_handle *trans, |
1036 | struct btrfs_root *root, u64 owner, | 1041 | struct btrfs_root *root, u64 owner, |
1037 | u64 num_blocks, u64 search_start, | 1042 | u64 num_blocks, u64 empty_size, u64 search_start, |
1038 | u64 search_end, struct btrfs_key *ins, int data); | 1043 | u64 search_end, struct btrfs_key *ins, int data); |
1039 | int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, | 1044 | int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, |
1040 | struct buffer_head *buf); | 1045 | struct buffer_head *buf); |
@@ -1051,6 +1056,10 @@ int btrfs_write_dirty_block_groups(struct btrfs_trans_handle *trans, | |||
1051 | int btrfs_free_block_groups(struct btrfs_fs_info *info); | 1056 | int btrfs_free_block_groups(struct btrfs_fs_info *info); |
1052 | int btrfs_read_block_groups(struct btrfs_root *root); | 1057 | int btrfs_read_block_groups(struct btrfs_root *root); |
1053 | /* ctree.c */ | 1058 | /* ctree.c */ |
1059 | int btrfs_cow_block(struct btrfs_trans_handle *trans, struct btrfs_root | ||
1060 | *root, struct buffer_head *buf, struct buffer_head | ||
1061 | *parent, int parent_slot, struct buffer_head | ||
1062 | **cow_ret); | ||
1054 | int btrfs_extend_item(struct btrfs_trans_handle *trans, struct btrfs_root | 1063 | int btrfs_extend_item(struct btrfs_trans_handle *trans, struct btrfs_root |
1055 | *root, struct btrfs_path *path, u32 data_size); | 1064 | *root, struct btrfs_path *path, u32 data_size); |
1056 | int btrfs_truncate_item(struct btrfs_trans_handle *trans, | 1065 | int btrfs_truncate_item(struct btrfs_trans_handle *trans, |
@@ -1060,6 +1069,9 @@ int btrfs_truncate_item(struct btrfs_trans_handle *trans, | |||
1060 | int btrfs_search_slot(struct btrfs_trans_handle *trans, struct btrfs_root | 1069 | int btrfs_search_slot(struct btrfs_trans_handle *trans, struct btrfs_root |
1061 | *root, struct btrfs_key *key, struct btrfs_path *p, int | 1070 | *root, struct btrfs_key *key, struct btrfs_path *p, int |
1062 | ins_len, int cow); | 1071 | ins_len, int cow); |
1072 | int btrfs_realloc_node(struct btrfs_trans_handle *trans, | ||
1073 | struct btrfs_root *root, struct buffer_head *parent, | ||
1074 | int cache_only); | ||
1063 | void btrfs_release_path(struct btrfs_root *root, struct btrfs_path *p); | 1075 | void btrfs_release_path(struct btrfs_root *root, struct btrfs_path *p); |
1064 | struct btrfs_path *btrfs_alloc_path(void); | 1076 | struct btrfs_path *btrfs_alloc_path(void); |
1065 | void btrfs_free_path(struct btrfs_path *p); | 1077 | void btrfs_free_path(struct btrfs_path *p); |
@@ -1171,4 +1183,7 @@ extern struct file_operations btrfs_file_operations; | |||
1171 | int btrfs_drop_extents(struct btrfs_trans_handle *trans, | 1183 | int btrfs_drop_extents(struct btrfs_trans_handle *trans, |
1172 | struct btrfs_root *root, struct inode *inode, | 1184 | struct btrfs_root *root, struct inode *inode, |
1173 | u64 start, u64 end, u64 *hint_block); | 1185 | u64 start, u64 end, u64 *hint_block); |
1186 | /* tree-defrag.c */ | ||
1187 | int btrfs_defrag_leaves(struct btrfs_trans_handle *trans, | ||
1188 | struct btrfs_root *root, int cache_only); | ||
1174 | #endif | 1189 | #endif |