btrfs: clean up NULL checks in qgroup_unreserve_range()
Smatch complains that this code dereferences "entry" before checking whether it's NULL on the next line. Fortunately, rb_entry() will never return NULL so it doesn't cause a problem. We can clean up the NULL checking a bit to silence the warning and make the code more clear. Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:

committed by
David Sterba

parent
fca3a45d08
commit
f07728d541
@@ -3435,24 +3435,20 @@ static int qgroup_unreserve_range(struct btrfs_inode *inode,
|
|||||||
{
|
{
|
||||||
struct rb_node *node;
|
struct rb_node *node;
|
||||||
struct rb_node *next;
|
struct rb_node *next;
|
||||||
struct ulist_node *entry = NULL;
|
struct ulist_node *entry;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
node = reserved->range_changed.root.rb_node;
|
node = reserved->range_changed.root.rb_node;
|
||||||
|
if (!node)
|
||||||
|
return 0;
|
||||||
while (node) {
|
while (node) {
|
||||||
entry = rb_entry(node, struct ulist_node, rb_node);
|
entry = rb_entry(node, struct ulist_node, rb_node);
|
||||||
if (entry->val < start)
|
if (entry->val < start)
|
||||||
node = node->rb_right;
|
node = node->rb_right;
|
||||||
else if (entry)
|
|
||||||
node = node->rb_left;
|
|
||||||
else
|
else
|
||||||
break;
|
node = node->rb_left;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Empty changeset */
|
|
||||||
if (!entry)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (entry->val > start && rb_prev(&entry->rb_node))
|
if (entry->val > start && rb_prev(&entry->rb_node))
|
||||||
entry = rb_entry(rb_prev(&entry->rb_node), struct ulist_node,
|
entry = rb_entry(rb_prev(&entry->rb_node), struct ulist_node,
|
||||||
rb_node);
|
rb_node);
|
||||||
|
Reference in New Issue
Block a user