Commit 9569cc20 authored by Qu Wenruo's avatar Qu Wenruo Committed by David Sterba

btrfs: reloc: rename mark_block_processed and __mark_block_processed

These two functions are weirdly named, mark_block_processed() in fact
just marks a range dirty unconditionally, while __mark_block_processed()
does extra check before doing the marking.

This patch will open code old mark_block_processed, and rename
__mark_block_processed() to remove the "__" prefix.

Since we're here, also kill the forward declaration, which could also
kill in_block_group() with in_range() macro.
Reviewed-by: default avatarNikolay Borisov <nborisov@suse.com>
Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 71f572a9
...@@ -237,8 +237,22 @@ struct reloc_control { ...@@ -237,8 +237,22 @@ struct reloc_control {
static void remove_backref_node(struct backref_cache *cache, static void remove_backref_node(struct backref_cache *cache,
struct backref_node *node); struct backref_node *node);
static void __mark_block_processed(struct reloc_control *rc,
struct backref_node *node); static void mark_block_processed(struct reloc_control *rc,
struct backref_node *node)
{
u32 blocksize;
if (node->level == 0 ||
in_range(node->bytenr, rc->block_group->start,
rc->block_group->length)) {
blocksize = rc->extent_root->fs_info->nodesize;
set_extent_bits(&rc->processed_blocks, node->bytenr,
node->bytenr + blocksize - 1, EXTENT_DIRTY);
}
node->processed = 1;
}
static void mapping_tree_init(struct mapping_tree *tree) static void mapping_tree_init(struct mapping_tree *tree)
{ {
...@@ -1105,7 +1119,7 @@ struct backref_node *build_backref_tree(struct reloc_control *rc, ...@@ -1105,7 +1119,7 @@ struct backref_node *build_backref_tree(struct reloc_control *rc,
if (list_empty(&lower->upper)) if (list_empty(&lower->upper))
list_add(&lower->list, &useless); list_add(&lower->list, &useless);
} }
__mark_block_processed(rc, upper); mark_block_processed(rc, upper);
if (upper->level > 0) { if (upper->level > 0) {
list_add(&upper->list, &cache->detached); list_add(&upper->list, &cache->detached);
upper->detached = 1; upper->detached = 1;
...@@ -1612,14 +1626,6 @@ static struct inode *find_next_inode(struct btrfs_root *root, u64 objectid) ...@@ -1612,14 +1626,6 @@ static struct inode *find_next_inode(struct btrfs_root *root, u64 objectid)
return NULL; return NULL;
} }
static int in_block_group(u64 bytenr, struct btrfs_block_group *block_group)
{
if (bytenr >= block_group->start &&
bytenr < block_group->start + block_group->length)
return 1;
return 0;
}
/* /*
* get new location of data * get new location of data
*/ */
...@@ -1717,7 +1723,8 @@ int replace_file_extents(struct btrfs_trans_handle *trans, ...@@ -1717,7 +1723,8 @@ int replace_file_extents(struct btrfs_trans_handle *trans,
num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi); num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi);
if (bytenr == 0) if (bytenr == 0)
continue; continue;
if (!in_block_group(bytenr, rc->block_group)) if (!in_range(bytenr, rc->block_group->start,
rc->block_group->length))
continue; continue;
/* /*
...@@ -2679,7 +2686,7 @@ struct btrfs_root *select_reloc_root(struct btrfs_trans_handle *trans, ...@@ -2679,7 +2686,7 @@ struct btrfs_root *select_reloc_root(struct btrfs_trans_handle *trans,
ASSERT(next->root); ASSERT(next->root);
list_add_tail(&next->list, list_add_tail(&next->list,
&rc->backref_cache.changed); &rc->backref_cache.changed);
__mark_block_processed(rc, next); mark_block_processed(rc, next);
break; break;
} }
...@@ -3029,25 +3036,6 @@ static int finish_pending_nodes(struct btrfs_trans_handle *trans, ...@@ -3029,25 +3036,6 @@ static int finish_pending_nodes(struct btrfs_trans_handle *trans,
return err; return err;
} }
static void mark_block_processed(struct reloc_control *rc,
u64 bytenr, u32 blocksize)
{
set_extent_bits(&rc->processed_blocks, bytenr, bytenr + blocksize - 1,
EXTENT_DIRTY);
}
static void __mark_block_processed(struct reloc_control *rc,
struct backref_node *node)
{
u32 blocksize;
if (node->level == 0 ||
in_block_group(node->bytenr, rc->block_group)) {
blocksize = rc->extent_root->fs_info->nodesize;
mark_block_processed(rc, node->bytenr, blocksize);
}
node->processed = 1;
}
/* /*
* mark a block and all blocks directly/indirectly reference the block * mark a block and all blocks directly/indirectly reference the block
* as processed. * as processed.
...@@ -3066,7 +3054,7 @@ static void update_processed_blocks(struct reloc_control *rc, ...@@ -3066,7 +3054,7 @@ static void update_processed_blocks(struct reloc_control *rc,
if (next->processed) if (next->processed)
break; break;
__mark_block_processed(rc, next); mark_block_processed(rc, next);
if (list_empty(&next->upper)) if (list_empty(&next->upper))
break; break;
...@@ -4636,7 +4624,7 @@ int btrfs_reloc_cow_block(struct btrfs_trans_handle *trans, ...@@ -4636,7 +4624,7 @@ int btrfs_reloc_cow_block(struct btrfs_trans_handle *trans,
} }
if (first_cow) if (first_cow)
__mark_block_processed(rc, node); mark_block_processed(rc, node);
if (first_cow && level > 0) if (first_cow && level > 0)
rc->nodes_relocated += buf->len; rc->nodes_relocated += buf->len;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment