All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo@cn.fujitsu.com>
To: <linux-btrfs@vger.kernel.org>
Cc: <dsterba@suse.cz>
Subject: [PATCH 10/19] btrfs-progs: Refactor btrfs_readahead_tree_block to use btrfs_fs_info
Date: Tue, 13 Jun 2017 17:19:26 +0800	[thread overview]
Message-ID: <20170613091935.23277-11-quwenruo@cn.fujitsu.com> (raw)
In-Reply-To: <20170613091935.23277-1-quwenruo@cn.fujitsu.com>

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
---
 cmds-check.c | 8 +++++---
 ctree.c      | 2 +-
 disk-io.c    | 8 ++++----
 disk-io.h    | 4 ++--
 image/main.c | 2 +-
 5 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/cmds-check.c b/cmds-check.c
index b9c21553..bd6c4e75 100644
--- a/cmds-check.c
+++ b/cmds-check.c
@@ -1967,6 +1967,7 @@ out:
 static void reada_walk_down(struct btrfs_root *root,
 			    struct extent_buffer *node, int slot)
 {
+	struct btrfs_fs_info *fs_info = root->fs_info;
 	u64 bytenr;
 	u64 ptr_gen;
 	u32 nritems;
@@ -1979,11 +1980,11 @@ static void reada_walk_down(struct btrfs_root *root,
 		return;
 
 	nritems = btrfs_header_nritems(node);
-	blocksize = root->fs_info->nodesize;
+	blocksize = fs_info->nodesize;
 	for (i = slot; i < nritems; i++) {
 		bytenr = btrfs_node_blockptr(node, i);
 		ptr_gen = btrfs_node_ptr_generation(node, i);
-		readahead_tree_block(root, bytenr, blocksize, ptr_gen);
+		readahead_tree_block(fs_info, bytenr, blocksize, ptr_gen);
 	}
 }
 
@@ -7613,6 +7614,7 @@ static int run_next_block(struct btrfs_root *root,
 			  struct device_extent_tree *dev_extent_cache,
 			  struct root_item_record *ri)
 {
+	struct btrfs_fs_info *fs_info = root->fs_info;
 	struct extent_buffer *buf;
 	struct extent_record *rec = NULL;
 	u64 bytenr;
@@ -7642,7 +7644,7 @@ static int run_next_block(struct btrfs_root *root,
 				continue;
 
 			/* fixme, get the parent transid */
-			readahead_tree_block(root, bits[i].start,
+			readahead_tree_block(fs_info, bits[i].start,
 					     bits[i].size, 0);
 		}
 	}
diff --git a/ctree.c b/ctree.c
index a6916b30..f3c13e1c 100644
--- a/ctree.c
+++ b/ctree.c
@@ -1021,7 +1021,7 @@ void reada_for_search(struct btrfs_root *root, struct btrfs_path *path,
 		if ((search >= lowest_read && search <= highest_read) ||
 		    (search < lowest_read && lowest_read - search <= 32768) ||
 		    (search > highest_read && search - highest_read <= 32768)) {
-			readahead_tree_block(root, search, blocksize,
+			readahead_tree_block(fs_info, search, blocksize,
 				     btrfs_node_ptr_generation(node, nr));
 			nread += blocksize;
 		}
diff --git a/disk-io.c b/disk-io.c
index 7addaf61..686c55e7 100644
--- a/disk-io.c
+++ b/disk-io.c
@@ -187,17 +187,17 @@ struct extent_buffer* btrfs_find_create_tree_block(
 	return alloc_extent_buffer(&fs_info->extent_cache, bytenr, blocksize);
 }
 
-void readahead_tree_block(struct btrfs_root *root, u64 bytenr, u32 blocksize,
-			  u64 parent_transid)
+void readahead_tree_block(struct btrfs_fs_info *fs_info, u64 bytenr,
+			  u32 blocksize, u64 parent_transid)
 {
 	struct extent_buffer *eb;
 	u64 length;
 	struct btrfs_multi_bio *multi = NULL;
 	struct btrfs_device *device;
 
-	eb = btrfs_find_tree_block(root->fs_info, bytenr, blocksize);
+	eb = btrfs_find_tree_block(fs_info, bytenr, blocksize);
 	if (!(eb && btrfs_buffer_uptodate(eb, parent_transid)) &&
-	    !btrfs_map_block(root->fs_info, READ, bytenr, &length, &multi, 0,
+	    !btrfs_map_block(fs_info, READ, bytenr, &length, &multi, 0,
 			     NULL)) {
 		device = multi->stripes[0].dev;
 		device->total_ios++;
diff --git a/disk-io.h b/disk-io.h
index 20520e59..b834fea4 100644
--- a/disk-io.h
+++ b/disk-io.h
@@ -121,8 +121,8 @@ struct extent_buffer* read_tree_block(
 
 int read_extent_data(struct btrfs_fs_info *fs_info, char *data, u64 logical,
 		     u64 *len, int mirror);
-void readahead_tree_block(struct btrfs_root *root, u64 bytenr, u32 blocksize,
-			  u64 parent_transid);
+void readahead_tree_block(struct btrfs_fs_info *fs_info, u64 bytenr,
+			  u32 blocksize, u64 parent_transid);
 struct extent_buffer* btrfs_find_create_tree_block(
 		struct btrfs_fs_info *fs_info, u64 bytenr, u32 blocksize);
 
diff --git a/image/main.c b/image/main.c
index e49430db..fac9b760 100644
--- a/image/main.c
+++ b/image/main.c
@@ -1029,7 +1029,7 @@ static int add_extent(u64 start, u64 size, struct metadump_struct *md,
 			return ret;
 		md->pending_start = start;
 	}
-	readahead_tree_block(md->root, start, size, 0);
+	readahead_tree_block(md->root->fs_info, start, size, 0);
 	md->pending_size += size;
 	md->data = data;
 	return 0;
-- 
2.13.1




  parent reply	other threads:[~2017-06-13  9:19 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-13  9:19 [PATCH 00/19] fs_info refactor part 2 (disk-io.h and volumes.h based) Qu Wenruo
2017-06-13  9:19 ` [PATCH 01/19] btrfs-progs: Refactor btrfs_map_block and its variants to use btrfs_fs_info Qu Wenruo
2017-06-13  9:19 ` [PATCH 02/19] btrfs-progs: Refactor btrfs_num_copies " Qu Wenruo
2017-06-13  9:19 ` [PATCH 03/19] btrfs-progs: Refactor btrfs_next_bg and its callers " Qu Wenruo
2017-06-13  9:19 ` [PATCH 04/19] btrfs-progs: Refactor csum_tree_block " Qu Wenruo
2017-06-13  9:19 ` [PATCH 05/19] btrfs-progs: Refactor write_and_map_eb " Qu Wenruo
2017-06-13  9:19 ` [PATCH 06/19] btrfs-progs: Refactor write_tree_block " Qu Wenruo
2017-06-13  9:19 ` [PATCH 07/19] btrfs-progs: btrfstune: Refactor change_devices_uuid " Qu Wenruo
2017-06-13  9:19 ` [PATCH 08/19] btrfs-progs: Refactor read_extent_data " Qu Wenruo
2017-06-13  9:19 ` [PATCH 09/19] btrfs-progs: Refactor btrfs_find_tree_block " Qu Wenruo
2017-06-13  9:19 ` Qu Wenruo [this message]
2017-06-13  9:19 ` [PATCH 11/19] btrfs-progs: Refactor write_all_supers and its callers " Qu Wenruo
2017-06-13  9:19 ` [PATCH 12/19] btrfs-progs: Refactor btrfs_check_chunk_valid " Qu Wenruo
2017-06-13  9:19 ` [PATCH 13/19] btrfs-progs: Refactor btrfs_find_device " Qu Wenruo
2017-06-13  9:19 ` [PATCH 14/19] btrfs-progs: Refactor btrfs_read_sys_array/chunk_tree " Qu Wenruo
2017-06-13  9:19 ` [PATCH 15/19] btrfs-progs: Refactor btrfs_add_system_chunk " Qu Wenruo
2017-06-13  9:19 ` [PATCH 16/19] btrfs-progs: Refactor btrfs_chunk_readonly " Qu Wenruo
2017-06-13  9:19 ` [PATCH 17/19] btrfs-progs: Refactor btrfs_add_device() " Qu Wenruo
2017-06-13  9:19 ` [PATCH 18/19] btrfs-progs: Remove btrfs_read_super_device as there is no implementation Qu Wenruo
2017-06-13  9:19 ` [PATCH 19/19] btrfs-progs: Refactor chunk creation functions to use btrfs_fs_info Qu Wenruo
2017-07-11  9:11 ` [PATCH 00/19] fs_info refactor part 2 (disk-io.h and volumes.h based) Qu Wenruo
2017-07-12 15:57   ` David Sterba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170613091935.23277-11-quwenruo@cn.fujitsu.com \
    --to=quwenruo@cn.fujitsu.com \
    --cc=dsterba@suse.cz \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.