@@ -227,8 +227,7 @@ static int csum_tree_block(struct btrfs_fs_info *fs_info,
struct extent_buffer *btrfs_find_tree_block(struct btrfs_fs_info *fs_info,
u64 bytenr, u32 blocksize)
{
- return find_extent_buffer(&fs_info->extent_cache,
- bytenr, blocksize);
+ return find_extent_buffer(fs_info, bytenr, blocksize);
}
struct extent_buffer* btrfs_find_create_tree_block(
@@ -682,9 +682,10 @@ void free_extent_buffer_nocache(struct extent_buffer *eb)
free_extent_buffer_internal(eb, 1);
}
-struct extent_buffer *find_extent_buffer(struct extent_io_tree *tree,
+struct extent_buffer *find_extent_buffer(struct btrfs_fs_info *fs_info,
u64 bytenr, u32 blocksize)
{
+ struct extent_io_tree *tree = &fs_info->extent_cache;
struct extent_buffer *eb = NULL;
struct cache_extent *cache;
@@ -698,9 +699,10 @@ struct extent_buffer *find_extent_buffer(struct extent_io_tree *tree,
return eb;
}
-struct extent_buffer *find_first_extent_buffer(struct extent_io_tree *tree,
+struct extent_buffer *find_first_extent_buffer(struct btrfs_fs_info *fs_info,
u64 start)
{
+ struct extent_io_tree *tree = &fs_info->extent_cache;
struct extent_buffer *eb = NULL;
struct cache_extent *cache;
@@ -129,9 +129,9 @@ static inline int extent_buffer_uptodate(struct extent_buffer *eb)
int set_state_private(struct extent_io_tree *tree, u64 start, u64 xprivate);
int get_state_private(struct extent_io_tree *tree, u64 start, u64 *xprivate);
-struct extent_buffer *find_extent_buffer(struct extent_io_tree *tree,
+struct extent_buffer *find_extent_buffer(struct btrfs_fs_info *fs_info,
u64 bytenr, u32 blocksize);
-struct extent_buffer *find_first_extent_buffer(struct extent_io_tree *tree,
+struct extent_buffer *find_first_extent_buffer(struct btrfs_fs_info *fs_info,
u64 start);
struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info,
u64 bytenr, u32 blocksize);
@@ -150,7 +150,7 @@ again:
goto again;
while(start <= end) {
- eb = find_first_extent_buffer(tree, start);
+ eb = find_first_extent_buffer(fs_info, start);
BUG_ON(!eb || eb->start != start);
ret = write_tree_block(trans, fs_info, eb);
if (ret < 0) {
@@ -180,7 +180,7 @@ cleanup:
break;
while (start <= end) {
- eb = find_first_extent_buffer(tree, start);
+ eb = find_first_extent_buffer(fs_info, start);
BUG_ON(!eb || eb->start != start);
start += eb->len;
clear_extent_buffer_dirty(eb);
This is a cleanup patch to make syncing the btrfs kernel code into btrfs-progs easier. In btrfs-progs we have an extra cache in the extent_io_tree that's exclusively used for the extent buffer tracking. In order to untangle this dependency start passing around the fs_info to search for extent_buffers, and then have the helpers use the appropriate structure to find the extent buffer. Signed-off-by: Josef Bacik <josef@toxicpanda.com> --- kernel-shared/disk-io.c | 3 +-- kernel-shared/extent_io.c | 6 ++++-- kernel-shared/extent_io.h | 4 ++-- kernel-shared/transaction.c | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-)