btrfs: move ref_mod modification into the if (ref) logic

We only use this logic if our ref isn't a ref_head, so move it up into
the if (ref) case since we know that this is a normal ref and not a
delayed ref head.

Signed-off-by: Josef Bacik <jbacik@fb.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Josef Bacik
2017-09-29 15:43:55 -04:00
committed by David Sterba
parent 194ab0bc21
commit 1ce7a5ec44

View File

@ -2744,10 +2744,6 @@ static noinline int __btrfs_run_delayed_refs(struct btrfs_trans_handle *trans,
list_del(&ref->list); list_del(&ref->list);
if (!list_empty(&ref->add_list)) if (!list_empty(&ref->add_list))
list_del(&ref->add_list); list_del(&ref->add_list);
}
atomic_dec(&delayed_refs->num_entries);
if (!btrfs_delayed_ref_is_head(ref)) {
/* /*
* when we play the delayed ref, also correct the * when we play the delayed ref, also correct the
* ref_mod on head * ref_mod on head
@ -2764,6 +2760,8 @@ static noinline int __btrfs_run_delayed_refs(struct btrfs_trans_handle *trans,
WARN_ON(1); WARN_ON(1);
} }
} }
atomic_dec(&delayed_refs->num_entries);
/* /*
* Record the must-insert_reserved flag before we drop the spin * Record the must-insert_reserved flag before we drop the spin
* lock. * lock.