Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

fs/aio.c aio_migrate_folio() -> folio_migrate_mapping()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
PARAM_VALUE 0 mapping->a_ops 4096-ptr_max
PARAM_VALUE 0 mapping->a_ops->migrate_folio 4096-ptr_max
PARAM_VALUE 1 newfolio 4096-ptr_max
PARAM_VALUE 1 newfolio->mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 newfolio->mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 2 folio 4096-ptr_max
PARAM_VALUE 2 folio->index 0-18446744073709551614
PARAM_VALUE 2 folio->mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 2 folio->mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 2 *folio->_mm_id 0-4294967295
PARAM_VALUE 3 extra_count 1
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
CAPPED_DATA 2 folio 1
DATA_SOURCE 0 mapping $0
DATA_SOURCE 1 newfolio $1
DATA_SOURCE 2 folio $2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &ai->migrate_lock
LOCK2 &ctx->ring_lock
TYPE_LOCK (struct aio_inode_info)->migrate_lock
TYPE_LOCK (struct kioctx)->ring_lock

mm/migrate_device.c __migrate_device_pages() -> folio_migrate_mapping()

Type Parameter Key Value
PARAM_VALUE 1 newfolio->mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 newfolio->mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 2 folio 4096-ptr_max
PARAM_VALUE 3 extra_count 0-1
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
DATA_SOURCE 0 mapping r folio_mapping
DATA_SOURCE 1 newfolio r _compound_head
DATA_SOURCE 2 folio r _compound_head
FUZZY_MAX 3 extra_count 1
HARD_MAX 3 extra_count 1
RX_PATH
TASK_NOT_RUNNING