Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 2 files:

Smatch caller information:

mm/rmap.c try_to_migrate_one() -> hugetlb_vma_trylock_write()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm 4096-ptr_max
DATA_SOURCE 0 vma $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_start
HALF_LOCKED2 &anon_vma->root->rwsem
HALF_LOCKED2 &folio->private->lock
HALF_LOCKED2 &resv_map->rw_sema
HALF_LOCKED2 0 &vma->vm_private_data->rw_sema

mm/rmap.c try_to_unmap_poisoned_hugetlb_one() -> hugetlb_vma_trylock_write()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_file 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm 4096-ptr_max
DATA_SOURCE 0 vma $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 vma->vm_start
HALF_LOCKED2 &anon_vma->root->rwsem
HALF_LOCKED2 &folio->private->lock

fs/hugetlbfs/inode.c hugetlb_unmap_file_folio() -> hugetlb_vma_trylock_write()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
PARAM_VALUE 0 vma->vm_file 4096-ptr_max
PARAM_VALUE 0 vma->vm_mm 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 vma unit_byte
LOCK2 &mapping->i_mmap_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &resv_map->rw_sema
HALF_LOCKED2 &vma_lock->rw_sema
HALF_LOCKED2 0 &vma->vm_private_data->rw_sema
TYPE_LOCK (struct address_space)->i_mmap_rwsem

fs/hugetlbfs/inode.c hugetlb_vmdelete_list() -> hugetlb_vma_trylock_write()

Type Parameter Key Value
PARAM_VALUE 0 vma 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mapping->i_mmap_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &resv_map->rw_sema
HALF_LOCKED2 0 &vma->vm_private_data->rw_sema
TYPE_LOCK (struct address_space)->i_mmap_rwsem