Defined in 2 files as a prototype:

Defined in 2 files as a function:

Referenced in 6 files:

Smatch caller information:

lib/rbtree_test.c check_postorder() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 8350103880887631872

lib/rbtree_test.c check_postorder_foreach() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 8350103880887631872

fs/btrfs/extent-io-tree.c btrfs_extent_io_tree_release() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 6974535598549188608
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &tree->lock
HALF_LOCKED2 &fs_info->commit_root_sem
HALF_LOCKED2 global &uuid_mutex
TYPE_LOCK (struct extent_io_tree)->lock

fs/ext4/block_validity.c release_system_zone() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/radeon/radeon_vm.c radeon_vm_fini() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c amdgpu_vm_fini() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

drivers/infiniband/core/frmr_pools.c ib_frmr_pools_cleanup() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 1-u64max

drivers/gpu/buddy.c gpu_buddy_reset_clear() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mgr->lock

fs/btrfs/block-rsv.c btrfs_update_global_block_rsv() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &fs_info->global_root_lock
HALF_LOCKED2 &fs_info->chunk_mutex
TYPE_LOCK (struct btrfs_fs_info)->global_root_lock

drivers/md/dm-zoned-metadata.c dmz_cleanup_metadata() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
BUF_SIZE 0 root 8

fs/ubifs/orphan.c dbg_free_check_tree() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 5096780939460190248
DATA_SOURCE 0 root $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &c->umount_mutex
HALF_LOCKED2 &c->write_reserve_mutex

fs/jffs2/readinode.c jffs2_free_tmp_dnode_info_list() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 1212094306357284864
PARAM_VALUE 0 root->rb_node 0,4096-ptr_max
DATA_SOURCE 0 root $0
MEM_ZERO 0 root
RX_PATH
TASK_NOT_RUNNING
LOCK2 &f->sem
HALF_LOCKED2 &c->alloc_sem
TYPE_LOCK (struct jffs2_inode_info)->sem

drivers/iommu/iova.c put_iova_domain() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->domain_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 global &vdpa_dev_lock

security/landlock/domain.c inherit_tree() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 0-ptr_max
BUF_SIZE 0 root 8
DATA_SOURCE 0 root r landlock_get_rule_root

security/landlock/domain.c merge_tree() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 0-ptr_max
BUF_SIZE 0 root 8
DATA_SOURCE 0 root r landlock_get_rule_root

fs/btrfs/qgroup.c btrfs_qgroup_clean_swapped_blocks() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 &fs_info->commit_root_sem
LOCK2 &swapped_blocks->lock
TYPE_LOCK (struct btrfs_fs_info)->commit_root_sem
TYPE_LOCK (struct btrfs_qgroup_swapped_blocks)->lock

drivers/gpu/drm/i915/gem/i915_gem_object.c __i915_gem_object_free_mmaps() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/i915/gem/i915_gem_object.c i915_gem_close_object() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &obj->mmo.lock
HALF_LOCKED2 &dev->object_name_lock
TYPE_LOCK (struct drm_i915_gem_object)->mmo.lock

fs/jffs2/nodelist.c jffs2_kill_fragtree() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
DATA_SOURCE 0 root $0
STR_LEN 0 root (-1)
STR_LEN 0 root (-1)
RX_PATH
TASK_NOT_RUNNING
LOCK2 &f->sem
HALF_LOCKED2 &c->alloc_sem
TYPE_LOCK (struct jffs2_inode_info)->sem

drivers/gpu/drm/i915/i915_active.c __active_retire() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4393011893443526656
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/i915/i915_active.c await_active() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &gt->perf.lock
HALF_LOCKED2 vma->obj->base.resv

drivers/gpu/drm/i915/i915_active.c flush_lazy_signals() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &gt->perf.lock

drivers/gpu/drm/i915/i915_active.c i915_active_print() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max

drivers/gpu/drm/i915/i915_active.c i915_active_unlock_wait() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
LOCK2 rcu_read

fs/namespace.c __is_local_mountpoint() -> rb_first_postorder()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &namespace_sem
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_sb->s_vfs_rename_mutex
HALF_LOCKED2 &target->i_rwsem

fs/ubifs/recovery.c ubifs_destroy_size_tree() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &c->umount_mutex
HALF_LOCKED2 &sb->s_umount
TYPE_LOCK (struct ubifs_info)->umount_mutex

security/landlock/ruleset.c landlock_free_rules() -> rb_first_postorder()

Type Parameter Key Value

security/landlock/ruleset.c landlock_free_rules() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max

net/tipc/name_table.c tipc_service_delete() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &sc->lock
LOCK2 &tn->nametbl_lock
LOCK2 bh
LOCK2 global &pernet_ops_rwsem
TYPE_LOCK (struct tipc_net)->nametbl_lock
TYPE_LOCK (struct tipc_service)->lock

fs/btrfs/relocation.c put_reloc_control() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &cow->lock
HALF_LOCKED2 &fs_info->reloc_mutex

fs/btrfs/relocation.c relocate_tree_blocks() -> rb_first_postorder()

Type Parameter Key Value
DATA_SOURCE 0 root $2

fs/btrfs/relocation.c relocate_tree_blocks() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PARAM_VALUE 0 root->rb_node 0,4096-ptr_max
PARAM_VALUE 0 root->rb_node->rb_left 0
PARAM_VALUE 0 root->rb_node->rb_right 0
DATA_SOURCE 0 root $2

fs/btrfs/relocation.c relocate_tree_blocks() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PARAM_VALUE 0 root->rb_node 0,4096-ptr_max
PARAM_VALUE 0 root->rb_node->rb_left 0
PARAM_VALUE 0 root->rb_node->rb_right 0
DATA_SOURCE 0 root $2

fs/btrfs/defrag.c btrfs_cleanup_defrag_inodes() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &fs_info->defrag_inodes_lock
TYPE_LOCK (struct btrfs_fs_info)->defrag_inodes_lock

fs/ubifs/debug.c free_inodes() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4436478800777592832

fs/btrfs/sysfs.c btrfs_sysfs_add_qgroups() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
HALF_LOCKED2 &fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &fs_info->subvol_sem

fs/btrfs/sysfs.c btrfs_sysfs_del_qgroups() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/disk-io.c free_global_root_pointers() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/disk-io.c free_global_roots() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/btrfs/disk-io.c free_global_roots() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PARAM_VALUE 0 root->rb_node 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

fs/ubifs/log.c destroy_done_tree() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 3574559221553950720
DATA_SOURCE 0 root $0

drivers/platform/surface/aggregator/controller.c ssam_notifier_unregister_all() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ctrl->lock
LOCK2 &nf->lock
TYPE_LOCK (struct ssam_controller)->lock
TYPE_LOCK (struct ssam_nf)->lock

kernel/trace/trace_stat.c __reset_stat_session() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &session->stat_mutex
HALF_LOCKED2 _T->lock

fs/ubifs/tnc.c destroy_old_idx() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &c->commit_sem
HALF_LOCKED2 &c->tnc_mutex
HALF_LOCKED2 &c->umount_mutex

drivers/md/bcache/btree.c bch_btree_gc_finish() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 &c->bucket_lock
LOCK2 &dc->writeback_keys.lock
LOCK2 rcu_read
TYPE_LOCK (struct cache_set)->bucket_lock
TYPE_LOCK (struct keybuf)->lock

arch/x86/events/intel/uncore_discovery.c intel_uncore_clear_discovery_tables() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 5952941395042082816

drivers/gpu/drm/i915/gem/i915_gem_mman.c i915_gem_object_release_mmap_offset() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &obj->mmo.lock
TYPE_LOCK (struct drm_i915_gem_object)->mmo.lock

fs/btrfs/backref.c prelim_release() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 7642796193401225216,7642796193401225240,7642796193401225264
RX_PATH
TASK_NOT_RUNNING

fs/ubifs/super.c free_buds() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &c->umount_mutex
HALF_LOCKED2 &sb->s_umount
TYPE_LOCK (struct ubifs_info)->umount_mutex

kernel/bpf/helpers.c bpf_rb_root_free() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 3212258435260420096
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
HALF_LOCKED2 rcu_read

kernel/bpf/helpers.c bpf_rb_root_free() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 3212258435260420096
PARAM_VALUE 0 root->rb_node 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

net/tipc/group.c tipc_group_delete() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
BUF_SIZE 0 root 8
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/tipc/group.c tipc_group_join() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 4096-ptr_max
BUF_SIZE 0 root 8
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk
HALF_LOCKED2 &smc->clcsock_release_lock

fs/ext4/dir.c free_rb_tree_fname() -> rb_first_postorder()

Type Parameter Key Value
PARAM_VALUE 0 root 1-u64max
DATA_SOURCE 0 root $0
RX_PATH
TASK_NOT_RUNNING