Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

fs/inode.c __inode_lru_list_add() -> mapping_shrinkable()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &inode->i_lock

fs/inode.c inode_lru_isolate() -> mapping_shrinkable()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &inode->i_lock
TYPE_LOCK (struct inode)->i_lock

mm/filemap.c delete_from_page_cache_batch() -> mapping_shrinkable()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
PARAM_VALUE 0 mapping->i_pages.xa_head 1-u64max
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
DATA_SOURCE 0 mapping $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
LOCK2 0 &mapping->host->i_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode_out->i_rwsem
HALF_LOCKED2 &journal->j_checkpoint_mutex
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 0 &mapping->host->i_rwsem
HALF_LOCKED2 0 &mapping->invalidate_lock
TYPE_LOCK (struct inode)->i_lock

mm/filemap.c filemap_remove_folio() -> mapping_shrinkable()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &mapping->host->i_lock
HALF_LOCKED2 &session->mutex
HALF_LOCKED2 &state.ctx->map_changing_lock
HALF_LOCKED2 _T->lock
TYPE_LOCK (struct inode)->i_lock

mm/workingset.c shadow_lru_isolate() -> mapping_shrinkable()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &mapping->host->i_lock
TYPE_LOCK (struct inode)->i_lock

mm/vmscan.c __remove_mapping() -> mapping_shrinkable()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
CAPPED_DATA 0 mapping 1
DATA_SOURCE 0 mapping $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
HALF_LOCKED2 0 &mapping->host->i_lock

mm/truncate.c clear_shadow_entries() -> mapping_shrinkable()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
DATA_SOURCE 0 mapping $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
LOCK2 0 &mapping->host->i_lock
HALF_LOCKED2 0 &mapping->host->i_rwsem
HALF_LOCKED2 0 &mapping->invalidate_lock
TYPE_LOCK (struct inode)->i_lock

mm/truncate.c folio_unmap_invalidate() -> mapping_shrinkable()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
CAPPED_DATA 0 mapping 1
DATA_SOURCE 0 mapping $0
STR_LEN 0 mapping (-1),8,11-12,14,17,19-20,23,26-27,29,31-32
STR_LEN 0 mapping (-1),8,11-12,14,17,19-20,23,26-27,29,31-32
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mapping->writeback_index 0-524287[c]
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
LOCK2 0 &mapping->host->i_lock
HALF_LOCKED2 0 &mapping->host->i_rwsem
HALF_LOCKED2 0 &mapping->invalidate_lock
TYPE_LOCK (struct inode)->i_lock

mm/truncate.c truncate_folio_batch_exceptionals() -> mapping_shrinkable()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
PARAM_VALUE 0 mapping->i_pages.xa_head 1-u64max
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
DATA_SOURCE 0 mapping $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
LOCK2 0 &mapping->host->i_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode_out->i_rwsem
HALF_LOCKED2 &journal->j_checkpoint_mutex
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 0 &mapping->host->i_rwsem
HALF_LOCKED2 0 &mapping->invalidate_lock
TYPE_LOCK (struct inode)->i_lock