Commit fdf8d595 authored by Anand Jain's avatar Anand Jain Committed by David Sterba

btrfs: open code btrfs_bin_search()

btrfs_bin_search() is a simple wrapper that searches for the whole slots
by calling btrfs_generic_bin_search() with the starting slot/first_slot
preset to 0.

This simple wrapper can be open coded as btrfs_bin_search().
Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 7b31e045
...@@ -854,7 +854,8 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans, ...@@ -854,7 +854,8 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans,
* Search for a key in the given extent_buffer. * Search for a key in the given extent_buffer.
* *
* The lower boundary for the search is specified by the slot number @first_slot. * The lower boundary for the search is specified by the slot number @first_slot.
* Use a value of 0 to search over the whole extent buffer. * Use a value of 0 to search over the whole extent buffer. Works for both
* leaves and nodes.
* *
* The slot in the extent buffer is returned via @slot. If the key exists in the * The slot in the extent buffer is returned via @slot. If the key exists in the
* extent buffer, then @slot will point to the slot where the key is, otherwise * extent buffer, then @slot will point to the slot where the key is, otherwise
...@@ -863,7 +864,7 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans, ...@@ -863,7 +864,7 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans,
* Slot may point to the total number of items (i.e. one position beyond the last * Slot may point to the total number of items (i.e. one position beyond the last
* key) if the key is bigger than the last key in the extent buffer. * key) if the key is bigger than the last key in the extent buffer.
*/ */
int btrfs_generic_bin_search(struct extent_buffer *eb, int first_slot, int btrfs_bin_search(struct extent_buffer *eb, int first_slot,
const struct btrfs_key *key, int *slot) const struct btrfs_key *key, int *slot)
{ {
unsigned long p; unsigned long p;
...@@ -1871,7 +1872,7 @@ static inline int search_for_key_slot(struct extent_buffer *eb, ...@@ -1871,7 +1872,7 @@ static inline int search_for_key_slot(struct extent_buffer *eb,
return 0; return 0;
} }
return btrfs_generic_bin_search(eb, search_low_slot, key, slot); return btrfs_bin_search(eb, search_low_slot, key, slot);
} }
static int search_leaf(struct btrfs_trans_handle *trans, static int search_leaf(struct btrfs_trans_handle *trans,
...@@ -2328,7 +2329,7 @@ int btrfs_search_old_slot(struct btrfs_root *root, const struct btrfs_key *key, ...@@ -2328,7 +2329,7 @@ int btrfs_search_old_slot(struct btrfs_root *root, const struct btrfs_key *key,
*/ */
btrfs_unlock_up_safe(p, level + 1); btrfs_unlock_up_safe(p, level + 1);
ret = btrfs_bin_search(b, key, &slot); ret = btrfs_bin_search(b, 0, key, &slot);
if (ret < 0) if (ret < 0)
goto done; goto done;
...@@ -4575,7 +4576,7 @@ int btrfs_search_forward(struct btrfs_root *root, struct btrfs_key *min_key, ...@@ -4575,7 +4576,7 @@ int btrfs_search_forward(struct btrfs_root *root, struct btrfs_key *min_key,
while (1) { while (1) {
nritems = btrfs_header_nritems(cur); nritems = btrfs_header_nritems(cur);
level = btrfs_header_level(cur); level = btrfs_header_level(cur);
sret = btrfs_bin_search(cur, min_key, &slot); sret = btrfs_bin_search(cur, 0, min_key, &slot);
if (sret < 0) { if (sret < 0) {
ret = sret; ret = sret;
goto out; goto out;
......
...@@ -508,22 +508,9 @@ int btrfs_trim_fs(struct btrfs_fs_info *fs_info, struct fstrim_range *range); ...@@ -508,22 +508,9 @@ int btrfs_trim_fs(struct btrfs_fs_info *fs_info, struct fstrim_range *range);
int __init btrfs_ctree_init(void); int __init btrfs_ctree_init(void);
void __cold btrfs_ctree_exit(void); void __cold btrfs_ctree_exit(void);
int btrfs_generic_bin_search(struct extent_buffer *eb, int first_slot, int btrfs_bin_search(struct extent_buffer *eb, int first_slot,
const struct btrfs_key *key, int *slot); const struct btrfs_key *key, int *slot);
/*
* Simple binary search on an extent buffer. Works for both leaves and nodes, and
* always searches over the whole range of keys (slot 0 to slot 'nritems - 1').
*/
static inline int btrfs_bin_search(struct extent_buffer *eb,
const struct btrfs_key *key,
int *slot)
{
return btrfs_generic_bin_search(eb, 0, key, slot);
}
int btrfs_bin_search(struct extent_buffer *eb, const struct btrfs_key *key,
int *slot);
int __pure btrfs_comp_cpu_keys(const struct btrfs_key *k1, const struct btrfs_key *k2); int __pure btrfs_comp_cpu_keys(const struct btrfs_key *k1, const struct btrfs_key *k2);
int btrfs_previous_item(struct btrfs_root *root, int btrfs_previous_item(struct btrfs_root *root,
struct btrfs_path *path, u64 min_objectid, struct btrfs_path *path, u64 min_objectid,
......
...@@ -1266,7 +1266,7 @@ int replace_path(struct btrfs_trans_handle *trans, struct reloc_control *rc, ...@@ -1266,7 +1266,7 @@ int replace_path(struct btrfs_trans_handle *trans, struct reloc_control *rc,
level = btrfs_header_level(parent); level = btrfs_header_level(parent);
ASSERT(level >= lowest_level); ASSERT(level >= lowest_level);
ret = btrfs_bin_search(parent, &key, &slot); ret = btrfs_bin_search(parent, 0, &key, &slot);
if (ret < 0) if (ret < 0)
break; break;
if (ret && slot > 0) if (ret && slot > 0)
...@@ -2407,7 +2407,7 @@ static int do_relocation(struct btrfs_trans_handle *trans, ...@@ -2407,7 +2407,7 @@ static int do_relocation(struct btrfs_trans_handle *trans,
if (upper->eb && !upper->locked) { if (upper->eb && !upper->locked) {
if (!lowest) { if (!lowest) {
ret = btrfs_bin_search(upper->eb, key, &slot); ret = btrfs_bin_search(upper->eb, 0, key, &slot);
if (ret < 0) if (ret < 0)
goto next; goto next;
BUG_ON(ret); BUG_ON(ret);
...@@ -2441,7 +2441,7 @@ static int do_relocation(struct btrfs_trans_handle *trans, ...@@ -2441,7 +2441,7 @@ static int do_relocation(struct btrfs_trans_handle *trans,
slot = path->slots[upper->level]; slot = path->slots[upper->level];
btrfs_release_path(path); btrfs_release_path(path);
} else { } else {
ret = btrfs_bin_search(upper->eb, key, &slot); ret = btrfs_bin_search(upper->eb, 0, key, &slot);
if (ret < 0) if (ret < 0)
goto next; goto next;
BUG_ON(ret); BUG_ON(ret);
......
...@@ -4099,7 +4099,7 @@ static int drop_inode_items(struct btrfs_trans_handle *trans, ...@@ -4099,7 +4099,7 @@ static int drop_inode_items(struct btrfs_trans_handle *trans,
found_key.offset = 0; found_key.offset = 0;
found_key.type = 0; found_key.type = 0;
ret = btrfs_bin_search(path->nodes[0], &found_key, &start_slot); ret = btrfs_bin_search(path->nodes[0], 0, &found_key, &start_slot);
if (ret < 0) if (ret < 0)
break; break;
......
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