Documented in 1 files:
Defined in 1 files as a function:
Referenced in 8 files:
- fs/jfs/jfs_metapage.c, line 656
- kernel/events/uprobes.c, line 442
- mm/folio.c
- mm/huge_memory.c
- mm/khugepaged.c
- mm/memfd.c, line 35
- mm/migrate.c
- mm/vmscan.c, line 1267
Smatch caller information:
mm/huge_memory.c __folio_split() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping->host->i_sb->s_export_op->encode_fh | 0,2,1398972869330624512,1616549510479982592,2037984473558433792,2776440803454029824,3228746867770966016,3502492669594062848,3526768263295340544,3559173554394271744,5000850239487131648,5583386343686406144,5817357685191483392-s64max |
| PARAM_VALUE | 0 | folio->mapping->host->i_sb->s_export_op->fh_to_parent | 0,5297,148606482432692224,436469935444291584,467281172929331200,529780027764285440,1092893949038768128,1556959531105513472,1608953577475584000,1649536479961075712,2404761408063094784,2970908329832960000,3511613614414655488-s64max |
| PARAM_VALUE | 0 | folio->mapping->host->i_sb->s_export_op->get_parent | 0,8931,264940071972966400,291591359766798336,565128213429456896,893189740598853632,1241177127089143808,1474696885321834496,1812477326828269568,1893665921928286208,2210088671756947456,2437012291923775488,2483979068402987008-s64max |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| CAPPED_DATA | 0 | folio | 1 |
| DATA_SOURCE | 0 | folio | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem |
mm/huge_memory.c folio_split_unmapped() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| DATA_SOURCE | 0 | folio | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &drm->dmem->mutex |
mm/huge_memory.c split_huge_pages_pid() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping | 1-u64max |
| CAPPED_DATA | 0 | folio | 1 |
| DATA_SOURCE | 0 | folio | r folio_walk_start |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &split_debug_mutex | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/folio.c lru_cache_drain_for_folio() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->page.flags.f | 0-18446744073709551614 |
| DATA_SOURCE | 0 | folio | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/folio.c lru_cache_drain_for_folio() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->page.flags.f | 0-18446744073709551614 |
| DATA_SOURCE | 0 | folio | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/vmscan.c shrink_folio_list() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping | 1-u64max |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | *folio->_mm_id | 0-4294967295 |
| CAPPED_DATA | 0 | folio | 1 |
| DATA_SOURCE | 0 | folio | r lru_to_folio |
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/events/uprobes.c __uprobe_write() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping | 1-u64max |
| DATA_SOURCE | 0 | folio | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | folio | unit_page |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &uprobe->register_rwsem |
mm/migrate.c __buffer_migrate_folio() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | *folio->_mm_id | 0-4294967295 |
| DATA_SOURCE | 0 | folio | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c __migrate_folio() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | *folio->_mm_id | 0-4294967295 |
| CAPPED_DATA | 0 | folio | 1 |
| DATA_SOURCE | 0 | folio | $2 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/migrate.c folio_migrate_mapping() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | *folio->_mm_id | 0-4294967295 |
| CAPPED_DATA | 0 | folio | 1 |
| DATA_SOURCE | 0 | folio | $2 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &ai->migrate_lock | ||
| HALF_LOCKED2 | &ctx->ring_lock |
mm/migrate.c migrate_huge_page_move_mapping() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | *folio->_mm_id | 0-4294967295 |
| DATA_SOURCE | 0 | folio | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/khugepaged.c __collapse_huge_page_isolate() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping->host->i_sb->s_export_op->fh_to_dentry | 0,8684,447817974243774464,687732489194512384,742201802719268864 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &vma->anon_vma->root->rwsem | ||
| LOCK2 | pte_ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct anon_vma)->rwsem | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/khugepaged.c collapse_scan_file() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->page._refcount.counter | 0-s32max |
| CAPPED_DATA | 0 | folio | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/khugepaged.c collapse_scan_pmd() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memfd.c memfd_folio_has_extra_refs() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| DATA_SOURCE | 0 | folio | $0 |
| PREEMPT_ADD | |||
| LOCK2 | &inode->i_rwsem | ||
| LOCK2 | irq | ||
| HALF_LOCKED2 | &((&xas)->xa)->xa_lock | ||
| HALF_LOCKED2 | &(xas->xa)->xa_lock | ||
| HALF_LOCKED2 | &session->mutex | ||
| HALF_LOCKED2 | _T->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/jfs/jfs_metapage.c metapage_migrate_folio() -> folio_expected_ref_count()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | folio | 4096-ptr_max |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 0 | folio->mapping->i_mmap_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 0 | folio->private | 1-u64max |
| PARAM_VALUE | 0 | *folio->_mm_id | 0-4294967295 |
| CAPPED_DATA | 0 | folio | 1 |
| DATA_SOURCE | 0 | folio | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING |