diff mbox series

[10/13] btrfs: remove unnecessary NULL pointer checks when searching extent maps

Message ID 28c638167c79d62903a2bfb411f63170aa90de5f.1663594828.git.fdmanana@suse.com (mailing list archive)
State New, archived
Headers show
Series btrfs: fixes and cleanups around extent maps | expand

Commit Message

Filipe Manana Sept. 19, 2022, 2:06 p.m. UTC
From: Filipe Manana <fdmanana@suse.com>

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.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
 fs/btrfs/extent_map.c | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

Comments

David Sterba Sept. 22, 2022, 4:04 p.m. UTC | #1
On Mon, Sep 19, 2022 at 03:06:37PM +0100, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
> 
> 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.
> 
> Signed-off-by: Filipe Manana <fdmanana@suse.com>
> ---
>  fs/btrfs/extent_map.c | 25 +++++++++++--------------
>  1 file changed, 11 insertions(+), 14 deletions(-)
> 
> diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c
> index f1616aa8d0f5..12538ff04525 100644
> --- a/fs/btrfs/extent_map.c
> +++ b/fs/btrfs/extent_map.c
> @@ -163,24 +163,21 @@ static struct rb_node *__tree_search(struct rb_root *root, u64 offset,
>  			return n;
>  	}

I've added asserts to verify the pointers are not accidentaly NULL.
diff mbox series

Patch

diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c
index f1616aa8d0f5..12538ff04525 100644
--- a/fs/btrfs/extent_map.c
+++ b/fs/btrfs/extent_map.c
@@ -163,24 +163,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;
 }