Defined in 2 files as a function:

Referenced in 8 files:

Smatch caller information:

mm/page-writeback.c __folio_cancel_dirty() -> mapping_can_writeback()

Type Parameter Key Value
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
DATA_SOURCE 0 mapping r folio_mapping
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mapping->writeback_index 0-524287[c]
HALF_LOCKED2 &mapping->i_private_lock

mm/page-writeback.c folio_account_dirtied() -> mapping_can_writeback()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
DATA_SOURCE 0 mapping $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mapping->writeback_index 0-524287[c]
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
LOCK2 &(&mapping->i_pages)->xa_lock
LOCK2 flags
HALF_LOCKED2 &folio->private->lock

mm/page-writeback.c folio_clear_dirty_for_io() -> mapping_can_writeback()

Type Parameter Key Value
PARAM_VALUE 0 mapping 1-u64max
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
DATA_SOURCE 0 mapping r folio_mapping
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mapping->writeback_index 0-524287[c]
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sdp->sd_log_flush_lock

mm/page-writeback.c folio_redirty_for_writepage() -> mapping_can_writeback()

Type Parameter Key Value
PARAM_VALUE 0 mapping 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mapping->writeback_index 0-524287[c]
HALF_LOCKED2 obj->base.resv

mm/vma.c vma_fs_can_writeback() -> mapping_can_writeback()

Type Parameter Key Value
PARAM_VALUE 0 mapping 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
HALF_LOCKED2 &mm->mmap_lock

fs/fs-writeback.c write_inode_now() -> mapping_can_writeback()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
HALF_LOCKED2 &disk->open_mutex
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &ni->mrec_lock
HALF_LOCKED2 &target->i_rwsem
HALF_LOCKED2 &vi->i_rwsem
HALF_LOCKED2 &vol->lcnbmp_lock

mm/filemap.c __filemap_get_folio_mpol() -> mapping_can_writeback()

Type Parameter Key Value
PARAM_VALUE 0 mapping 4096-ptr_max
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping->a_ops (-1),152
DATA_SOURCE 0 mapping $0
NOSPEC 0 mapping->writeback_index
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mapping->writeback_index 0-524287[c]
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
HALF_LOCKED2 &c->alloc_sem
HALF_LOCKED2 &ctx->ring_lock
HALF_LOCKED2 &fc->killsb
HALF_LOCKED2 &fs_info->fs_devices->device_list_mutex
HALF_LOCKED2 &fs_info->tree_log_mutex
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->vfs_inode.i_rwsem
HALF_LOCKED2 &ip->i_inode.i_rwsem
HALF_LOCKED2 &ip->i_rw_mutex
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &req->r_fill_mutex
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sdp->sd_log_flush_lock
HALF_LOCKED2 &session->s_mutex
HALF_LOCKED2 &split_debug_mutex
HALF_LOCKED2 0 &mapping->host->i_rwsem
HALF_LOCKED2 0 &mapping->i_mmap_rwsem
HALF_LOCKED2 0 &mapping->invalidate_lock

mm/filemap.c __filemap_get_folio_mpol() -> mapping_can_writeback()

Type Parameter Key Value
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping->a_ops (-1),152
DATA_SOURCE 0 mapping $0
NOSPEC 0 mapping->writeback_index
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mapping->writeback_index 0-524287[c]
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
HALF_LOCKED2 &c->alloc_sem
HALF_LOCKED2 &ctx->ring_lock
HALF_LOCKED2 &fc->killsb
HALF_LOCKED2 &fs_info->fs_devices->device_list_mutex
HALF_LOCKED2 &fs_info->tree_log_mutex
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->vfs_inode.i_rwsem
HALF_LOCKED2 &ip->i_inode.i_rwsem
HALF_LOCKED2 &ip->i_rw_mutex
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &req->r_fill_mutex
HALF_LOCKED2 &sbi->gc_lock.internal_rwsem
HALF_LOCKED2 &sdp->sd_log_flush_lock
HALF_LOCKED2 &session->s_mutex
HALF_LOCKED2 &split_debug_mutex
HALF_LOCKED2 0 &mapping->host->i_rwsem
HALF_LOCKED2 0 &mapping->i_mmap_rwsem
HALF_LOCKED2 0 &mapping->invalidate_lock

mm/filemap.c filemap_unaccount_folio() -> mapping_can_writeback()

Type Parameter Key Value
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
DATA_SOURCE 0 mapping $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mapping->writeback_index 0-524287[c]
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
LOCK2 irq
HALF_LOCKED2 &(&mapping->i_pages)->xa_lock
HALF_LOCKED2 0 &mapping->host->i_lock
HALF_LOCKED2 0 &mapping->host->i_rwsem
HALF_LOCKED2 0 &mapping->invalidate_lock

mm/filemap.c filemap_writeback() -> mapping_can_writeback()

Type Parameter Key Value
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping->a_ops (-1),152
DATA_SOURCE 0 mapping $0
NOSPEC 0 mapping->writeback_index
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 mapping->writeback_index 0-524287[c]
NO_OVERFLOW_SIMPLE 0 mapping->host->i_bytes
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
HALF_LOCKED2 &fs_info->delalloc_root_mutex
HALF_LOCKED2 &root->delalloc_mutex
HALF_LOCKED2 0 &mapping->invalidate_lock

mm/memory-failure.c unmap_poisoned_folio() -> mapping_can_writeback()

Type Parameter Key Value
PARAM_VALUE 0 mapping 1-u64max
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
DATA_SOURCE 0 mapping r folio_mapping
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 global &mf_mutex
HALF_LOCKED2 global &pcp_batch_high_lock

mm/migrate.c __folio_migrate_mapping() -> mapping_can_writeback()

Type Parameter Key Value
PARAM_VALUE 0 mapping 1-u64max
BUF_SIZE 0 mapping (-1),552
BUF_SIZE 0 mapping (-1),552
DATA_SOURCE 0 mapping $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &((&xas)->xa)->xa_lock

mm/khugepaged.c collapse_single_pmd() -> mapping_can_writeback()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 mapping->host->i_size
HALF_LOCKED2 &mm->mmap_lock