mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
btrfs: remove local variable need_account in do_walk_down()
We only set this if wc->refs[level - 1] > 1, and we check this way up above where we need it because the first thing we do before dropping our refs is reset wc->refs[level - 1] to 0. Reorder resetting of wc->refs to after our drop logic, and then remove the need_account variable and simply check wc->refs[level - 1] directly instead of using a variable. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
562d425454
commit
4c4686d19d
|
|
@ -5477,7 +5477,6 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,
|
|||
struct extent_buffer *next;
|
||||
int level = wc->level;
|
||||
int ret = 0;
|
||||
bool need_account = false;
|
||||
|
||||
generation = btrfs_node_ptr_generation(path->nodes[level],
|
||||
path->slots[level]);
|
||||
|
|
@ -5517,7 +5516,6 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,
|
|||
|
||||
if (wc->stage == DROP_REFERENCE) {
|
||||
if (wc->refs[level - 1] > 1) {
|
||||
need_account = true;
|
||||
if (level == 1 &&
|
||||
(wc->flags[0] & BTRFS_BLOCK_FLAG_FULL_BACKREF))
|
||||
goto skip;
|
||||
|
|
@ -5560,8 +5558,6 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,
|
|||
wc->reada_slot = 0;
|
||||
return 0;
|
||||
skip:
|
||||
wc->refs[level - 1] = 0;
|
||||
wc->flags[level - 1] = 0;
|
||||
if (wc->stage == DROP_REFERENCE) {
|
||||
struct btrfs_ref ref = {
|
||||
.action = BTRFS_DROP_DELAYED_REF,
|
||||
|
|
@ -5606,7 +5602,8 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,
|
|||
* already accounted them at merge time (replace_path),
|
||||
* thus we could skip expensive subtree trace here.
|
||||
*/
|
||||
if (btrfs_root_id(root) != BTRFS_TREE_RELOC_OBJECTID && need_account) {
|
||||
if (btrfs_root_id(root) != BTRFS_TREE_RELOC_OBJECTID &&
|
||||
wc->refs[level - 1] > 1) {
|
||||
ret = btrfs_qgroup_trace_subtree(trans, next,
|
||||
generation, level - 1);
|
||||
if (ret) {
|
||||
|
|
@ -5631,6 +5628,8 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,
|
|||
goto out_unlock;
|
||||
}
|
||||
no_delete:
|
||||
wc->refs[level - 1] = 0;
|
||||
wc->flags[level - 1] = 0;
|
||||
wc->lookup_info = 1;
|
||||
ret = 1;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user