Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

fs/btrfs/tree-log.c drop_inode_items() -> btrfs_bin_search()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 1 first_slot 0
PARAM_VALUE 2 key 3616706802028257280
PARAM_VALUE 2 key->offset 0
PARAM_VALUE 2 key->type 0
PARAM_VALUE 3 slot 3910136303358746624

fs/btrfs/relocation.c do_relocation() -> btrfs_bin_search()

Type Parameter Key Value
PARAM_VALUE 0 eb 1-u64max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
PARAM_VALUE 1 first_slot 0
PARAM_VALUE 2 key 3702667145525493760
PARAM_VALUE 3 slot 2087009034786799616
DATA_SOURCE 2 key $3
RX_PATH
TASK_NOT_RUNNING
LOCK2 &fs_info->cleaner_mutex
HALF_LOCKED2 &eb->lock
HALF_LOCKED2 &fs_info->reclaim_bgs_lock
TYPE_LOCK (struct btrfs_fs_info)->cleaner_mutex
TYPE_LOCK (struct btrfs_fs_info)->reclaim_bgs_lock

fs/btrfs/relocation.c do_relocation() -> btrfs_bin_search()

Type Parameter Key Value
PARAM_VALUE 0 eb 1-u64max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
PARAM_VALUE 1 first_slot 0
PARAM_VALUE 2 key 40,4096-ptr_max
PARAM_VALUE 3 slot 2087009034786799616
DATA_SOURCE 2 key $3
RX_PATH
TASK_NOT_RUNNING
LOCK2 &fs_info->cleaner_mutex
HALF_LOCKED2 &cow->lock
HALF_LOCKED2 &eb->lock
HALF_LOCKED2 &fs_info->reclaim_bgs_lock
TYPE_LOCK (struct btrfs_fs_info)->cleaner_mutex
TYPE_LOCK (struct btrfs_fs_info)->reclaim_bgs_lock

fs/btrfs/relocation.c replace_path() -> btrfs_bin_search()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
PARAM_VALUE 0 eb->lock.osq.tail.counter 0-s32max
PARAM_VALUE 1 first_slot 0
PARAM_VALUE 2 key 9033377712807821312
PARAM_VALUE 3 slot 1516019089273573376
BUF_SIZE 0 eb (-1)-s32max
BUF_SIZE 0 eb (-1)-s32max
NO_OVERFLOW_SIMPLE 0 eb->len
NO_OVERFLOW_SIMPLE 0 eb->start
HALF_LOCKED2 &cow->lock
HALF_LOCKED2 &eb->lock

fs/btrfs/ctree.c btrfs_search_forward() -> btrfs_bin_search()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.dep_map->name 0-255
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
PARAM_VALUE 1 first_slot 0
PARAM_VALUE 2 key 607953117779128320,2407305197628338176,3531071578656346112,6261413631930257408,7217413690763591680,8829450759068741632
PARAM_VALUE 3 slot 540207836763242496
CAPPED_DATA 0 eb 1
DATA_SOURCE 2 key $1
NOSPEC 2 key->offset
USER_DATA 2 key->objectid 0-u64max
USER_DATA 2 key->offset 0-u64max
USER_DATA 2 key->type 0-255
HALF_LOCKED2 &inode->vfs_inode.i_rwsem
HALF_LOCKED2 0 &eb->lock

fs/btrfs/ctree.c btrfs_search_old_slot() -> btrfs_bin_search()

Type Parameter Key Value
PARAM_VALUE 0 eb 4096-ptr_max
PARAM_VALUE 0 eb->lock.dep_map->name 0-255
PARAM_VALUE 0 eb->lock.first_waiter->handoff_set 0-1
PARAM_VALUE 0 eb->lock.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 eb->lock.first_waiter->type 0-1
PARAM_VALUE 1 first_slot 0
PARAM_VALUE 2 key 3632415684022796288,6107121730777239552
PARAM_VALUE 3 slot 3769272375107145728
BUF_SIZE 0 eb (-1)-s32max
BUF_SIZE 0 eb (-1)-s32max
DATA_SOURCE 2 key $1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->fs_info->commit_root_sem
HALF_LOCKED2 0 &eb->lock

fs/btrfs/ctree.c search_for_key_slot() -> btrfs_bin_search()

Type Parameter Key Value
PARAM_VALUE 1 first_slot 0-1
PARAM_VALUE 3 slot 4096-ptr_max
BUF_SIZE 3 slot 32
BUF_SIZE 3 slot 32
DATA_SOURCE 0 eb $0
DATA_SOURCE 1 first_slot $1
DATA_SOURCE 2 key $2
DATA_SOURCE 3 slot $4
FUZZY_MAX 1 first_slot 1
HARD_MAX 1 first_slot 1