btrfs: eliminate if in main loop in tree_search_offset

Reshuffle the code inside the first loop of tree_search_offset so that
one if() is eliminated and the becomes more linear.

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Nikolay Borisov 2021-11-23 09:23:42 +02:00 committed by David Sterba
parent bf08387fb4
commit f1a8fc6265

View file

@ -1636,15 +1636,10 @@ tree_search_offset(struct btrfs_free_space_ctl *ctl,
u64 offset, int bitmap_only, int fuzzy) u64 offset, int bitmap_only, int fuzzy)
{ {
struct rb_node *n = ctl->free_space_offset.rb_node; struct rb_node *n = ctl->free_space_offset.rb_node;
struct btrfs_free_space *entry, *prev = NULL; struct btrfs_free_space *entry = NULL, *prev = NULL;
/* find entry that is closest to the 'offset' */ /* find entry that is closest to the 'offset' */
while (1) { while (n) {
if (!n) {
entry = NULL;
break;
}
entry = rb_entry(n, struct btrfs_free_space, offset_index); entry = rb_entry(n, struct btrfs_free_space, offset_index);
prev = entry; prev = entry;
@ -1654,6 +1649,8 @@ tree_search_offset(struct btrfs_free_space_ctl *ctl,
n = n->rb_right; n = n->rb_right;
else else
break; break;
entry = NULL;
} }
if (bitmap_only) { if (bitmap_only) {