Commit 85fdfdf6 authored by Filipe Manana's avatar Filipe Manana Committed by Josef Bacik

Btrfs: cleanup delayed-ref.c:find_ref_head()

The argument last wasn't used, all callers supplied a NULL value
for it. Also removed unnecessary intermediate storage of the result
of key comparisons.
Signed-off-by: default avatarFilipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
parent 6103fb43
...@@ -199,42 +199,30 @@ static struct btrfs_delayed_ref_head *htree_insert(struct rb_root *root, ...@@ -199,42 +199,30 @@ static struct btrfs_delayed_ref_head *htree_insert(struct rb_root *root,
*/ */
static struct btrfs_delayed_ref_head * static struct btrfs_delayed_ref_head *
find_ref_head(struct rb_root *root, u64 bytenr, find_ref_head(struct rb_root *root, u64 bytenr,
struct btrfs_delayed_ref_head **last, int return_bigger) int return_bigger)
{ {
struct rb_node *n; struct rb_node *n;
struct btrfs_delayed_ref_head *entry; struct btrfs_delayed_ref_head *entry;
int cmp = 0;
n = root->rb_node; n = root->rb_node;
entry = NULL; entry = NULL;
while (n) { while (n) {
entry = rb_entry(n, struct btrfs_delayed_ref_head, href_node); entry = rb_entry(n, struct btrfs_delayed_ref_head, href_node);
if (last)
*last = entry;
if (bytenr < entry->node.bytenr) if (bytenr < entry->node.bytenr)
cmp = -1;
else if (bytenr > entry->node.bytenr)
cmp = 1;
else
cmp = 0;
if (cmp < 0)
n = n->rb_left; n = n->rb_left;
else if (cmp > 0) else if (bytenr > entry->node.bytenr)
n = n->rb_right; n = n->rb_right;
else else
return entry; return entry;
} }
if (entry && return_bigger) { if (entry && return_bigger) {
if (cmp > 0) { if (bytenr > entry->node.bytenr) {
n = rb_next(&entry->href_node); n = rb_next(&entry->href_node);
if (!n) if (!n)
n = rb_first(root); n = rb_first(root);
entry = rb_entry(n, struct btrfs_delayed_ref_head, entry = rb_entry(n, struct btrfs_delayed_ref_head,
href_node); href_node);
if (last)
*last = entry;
return entry; return entry;
} }
return entry; return entry;
...@@ -414,12 +402,12 @@ btrfs_select_ref_head(struct btrfs_trans_handle *trans) ...@@ -414,12 +402,12 @@ btrfs_select_ref_head(struct btrfs_trans_handle *trans)
again: again:
start = delayed_refs->run_delayed_start; start = delayed_refs->run_delayed_start;
head = find_ref_head(&delayed_refs->href_root, start, NULL, 1); head = find_ref_head(&delayed_refs->href_root, start, 1);
if (!head && !loop) { if (!head && !loop) {
delayed_refs->run_delayed_start = 0; delayed_refs->run_delayed_start = 0;
start = 0; start = 0;
loop = true; loop = true;
head = find_ref_head(&delayed_refs->href_root, start, NULL, 1); head = find_ref_head(&delayed_refs->href_root, start, 1);
if (!head) if (!head)
return NULL; return NULL;
} else if (!head && loop) { } else if (!head && loop) {
...@@ -897,7 +885,7 @@ btrfs_find_delayed_ref_head(struct btrfs_trans_handle *trans, u64 bytenr) ...@@ -897,7 +885,7 @@ btrfs_find_delayed_ref_head(struct btrfs_trans_handle *trans, u64 bytenr)
struct btrfs_delayed_ref_root *delayed_refs; struct btrfs_delayed_ref_root *delayed_refs;
delayed_refs = &trans->transaction->delayed_refs; delayed_refs = &trans->transaction->delayed_refs;
return find_ref_head(&delayed_refs->href_root, bytenr, NULL, 0); return find_ref_head(&delayed_refs->href_root, bytenr, 0);
} }
void btrfs_delayed_ref_exit(void) void btrfs_delayed_ref_exit(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment