From fa37a13f73ad43233db97c945b0e36d9dcaef298 Mon Sep 17 00:00:00 2001 From: Qu Wenruo Date: Thu, 18 Jan 2018 16:25:11 +0800 Subject: [PATCH] btrfs-progs: check: move reada_walk_down to check/common.c Both original and lowmem modes share this function to do readahead. Reviewed-by: Su Yue Signed-off-by: Qu Wenruo Signed-off-by: David Sterba --- check/common.c | 23 +++++++++++++++++++++++ check/common.h | 2 ++ check/main.c | 22 ---------------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/check/common.c b/check/common.c index 7392ed6..1ea9f50 100644 --- a/check/common.c +++ b/check/common.c @@ -20,6 +20,7 @@ #include "messages.h" #include "transaction.h" #include "utils.h" +#include "disk-io.h" #include "check/common.h" /* @@ -252,3 +253,25 @@ void check_dev_size_alignment(u64 devid, u64 total_bytes, u32 sectorsize) warning("this can be fixed by 'btrfs rescue fix-device-size'"); } } + +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; + int i; + int level; + + level = btrfs_header_level(node); + if (level != 1) + return; + + nritems = btrfs_header_nritems(node); + for (i = slot; i < nritems; i++) { + bytenr = btrfs_node_blockptr(node, i); + ptr_gen = btrfs_node_ptr_generation(node, i); + readahead_tree_block(fs_info, bytenr, ptr_gen); + } +} diff --git a/check/common.h b/check/common.h index 72146b4..34b2f8a 100644 --- a/check/common.h +++ b/check/common.h @@ -91,5 +91,7 @@ int link_inode_to_lostfound(struct btrfs_trans_handle *trans, u64 ino, char *namebuf, u32 name_len, u8 filetype, u64 *ref_count); void check_dev_size_alignment(u64 devid, u64 total_bytes, u32 sectorsize); +void reada_walk_down(struct btrfs_root *root, struct extent_buffer *node, + int slot); #endif diff --git a/check/main.c b/check/main.c index 7619c8e..4c195f2 100644 --- a/check/main.c +++ b/check/main.c @@ -1668,28 +1668,6 @@ out: return ret; } -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; - int i; - int level; - - level = btrfs_header_level(node); - if (level != 1) - return; - - nritems = btrfs_header_nritems(node); - for (i = slot; i < nritems; i++) { - bytenr = btrfs_node_blockptr(node, i); - ptr_gen = btrfs_node_ptr_generation(node, i); - readahead_tree_block(fs_info, bytenr, ptr_gen); - } -} - /* * Check the child node/leaf by the following condition: * 1. the first item key of the node/leaf should be the same with the one -- 2.7.4