mirror of
https://github.com/kdave/btrfs-progs
synced 2025-01-30 01:12:45 +00:00
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 <suy.fnst@cn.fujitsu.com> Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
d0b191b880
commit
fa37a13f73
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
22
check/main.c
22
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
|
||||
|
Loading…
Reference in New Issue
Block a user