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 |
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 --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; }