diff mbox series

[v3,14/29] btrfs-progs: make the find extent buffer helpers take fs_info

Message ID 7473bfae6a54af4d74b0993556df96a4dd8508d1.1669242804.git.josef@toxicpanda.com (mailing list archive)
State New, archived
Headers show
Series prep and initial sync of kernel code | expand

Commit Message

Josef Bacik Nov. 23, 2022, 10:37 p.m. UTC
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(-)
diff mbox series

Patch

diff --git a/kernel-shared/disk-io.c b/kernel-shared/disk-io.c
index 776758e9..ad4d0f4c 100644
--- a/kernel-shared/disk-io.c
+++ b/kernel-shared/disk-io.c
@@ -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(
diff --git a/kernel-shared/extent_io.c b/kernel-shared/extent_io.c
index f112983a..bdfb2de6 100644
--- a/kernel-shared/extent_io.c
+++ b/kernel-shared/extent_io.c
@@ -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;
 
diff --git a/kernel-shared/extent_io.h b/kernel-shared/extent_io.h
index ccdf768c..e4ae2dcd 100644
--- a/kernel-shared/extent_io.h
+++ b/kernel-shared/extent_io.h
@@ -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);
diff --git a/kernel-shared/transaction.c b/kernel-shared/transaction.c
index 28b16848..c50abfca 100644
--- a/kernel-shared/transaction.c
+++ b/kernel-shared/transaction.c
@@ -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);