btrfs: remove unnecessary NULL pointer checks when searching extent maps
authorFilipe Manana <fdmanana@suse.com>
Mon, 19 Sep 2022 14:06:37 +0000 (15:06 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 29 Sep 2022 15:08:31 +0000 (17:08 +0200)
The previous and next pointer arguments passed to __tree_search() are
never NULL as the only caller of this function, __lookup_extent_mapping(),
always passes the address of two on stack pointers. So remove the NULL
checks and add assertions to verify the pointers.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_map.c

index f1616aa..774fee9 100644 (file)
@@ -150,6 +150,9 @@ static struct rb_node *__tree_search(struct rb_root *root, u64 offset,
        struct extent_map *entry;
        struct extent_map *prev_entry = NULL;
 
+       ASSERT(prev_ret);
+       ASSERT(next_ret);
+
        while (n) {
                entry = rb_entry(n, struct extent_map, rb_node);
                prev = n;
@@ -163,24 +166,21 @@ static struct rb_node *__tree_search(struct rb_root *root, u64 offset,
                        return n;
        }
 
-       if (prev_ret) {
-               orig_prev = prev;
-               while (prev && offset >= extent_map_end(prev_entry)) {
-                       prev = rb_next(prev);
-                       prev_entry = rb_entry(prev, struct extent_map, rb_node);
-               }
-               *prev_ret = prev;
-               prev = orig_prev;
+       orig_prev = prev;
+       while (prev && offset >= extent_map_end(prev_entry)) {
+               prev = rb_next(prev);
+               prev_entry = rb_entry(prev, struct extent_map, rb_node);
        }
+       *prev_ret = prev;
+       prev = orig_prev;
 
-       if (next_ret) {
+       prev_entry = rb_entry(prev, struct extent_map, rb_node);
+       while (prev && offset < prev_entry->start) {
+               prev = rb_prev(prev);
                prev_entry = rb_entry(prev, struct extent_map, rb_node);
-               while (prev && offset < prev_entry->start) {
-                       prev = rb_prev(prev);
-                       prev_entry = rb_entry(prev, struct extent_map, rb_node);
-               }
-               *next_ret = prev;
        }
+       *next_ret = prev;
+
        return NULL;
 }