Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 7 files:
- drivers/block/rbd.c, line 3509
- fs/ceph/addr.c
- fs/ceph/caps.c
- fs/ceph/file.c
- fs/ceph/snap.c, line 645
- net/ceph/osd_client.c, line 569
- net/ceph/snapshot.c, line 52
Smatch caller information:
fs/ceph/snap.c ceph_queue_cap_snap() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | &ci->i_ceph_lock | ||
| LOCK2 | &mdsc->snap_rwsem | ||
| HALF_LOCKED2 | &session->s_mutex | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_mds_client)->snap_rwsem |
fs/ceph/caps.c __ceph_mark_dirty_caps() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ci->i_ceph_lock | ||
| HALF_LOCKED2 | &fsc->mdsc->snap_rwsem | ||
| HALF_LOCKED2 | &inode->i_mapping->invalidate_lock | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/caps.c ceph_take_cap_refs() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ci->i_ceph_lock | ||
| HALF_LOCKED2 | &mdsc->snap_rwsem | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
drivers/block/rbd.c rbd_img_object_requests() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| LOCK2 | &img_req->state_mutex | ||
| LOCK2 | &rbd_dev->header_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &rbd_dev->lock_rwsem | ||
| TYPE_LOCK | (struct rbd_device)->header_rwsem | ||
| TYPE_LOCK | (struct rbd_img_request)->state_mutex |
fs/ceph/addr.c ceph_dirty_folio() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| HALF_LOCKED2 | &((&xas)->xa)->xa_lock | ||
| HALF_LOCKED2 | &folio->private->lock | ||
| HALF_LOCKED2 | &inode->i_mapping->invalidate_lock | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &ip->i_rw_mutex | ||
| HALF_LOCKED2 | &log_ni->runlist.lock | ||
| HALF_LOCKED2 | &mapping->invalidate_lock | ||
| HALF_LOCKED2 | &mft_ni->mrec_lock | ||
| HALF_LOCKED2 | &mftbmp_ni->runlist.lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &ni->file.run_lock | ||
| HALF_LOCKED2 | &ni->ni_lock | ||
| HALF_LOCKED2 | &nm_i->nat_tree_lock.internal_rwsem | ||
| HALF_LOCKED2 | &sbi->cp_global_sem.internal_rwsem | ||
| HALF_LOCKED2 | &sbi->cp_rwsem.internal_rwsem | ||
| HALF_LOCKED2 | &sbi->gc_lock.internal_rwsem | ||
| HALF_LOCKED2 | &sbi->pin_sem.internal_rwsem | ||
| HALF_LOCKED2 | &session->mutex | ||
| HALF_LOCKED2 | &sit_i->sentry_lock | ||
| HALF_LOCKED2 | &src_inode->i_rwsem | ||
| HALF_LOCKED2 | &vol->lcnbmp_lock | ||
| HALF_LOCKED2 | &vol->mftbmp_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | global &ksm_thread_mutex | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | ptl | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/addr.c ceph_dirty_folio() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 1-u64max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ci->i_ceph_lock | ||
| HALF_LOCKED2 | &((&xas)->xa)->xa_lock | ||
| HALF_LOCKED2 | &folio->private->lock | ||
| HALF_LOCKED2 | &inode->i_mapping->invalidate_lock | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &ip->i_rw_mutex | ||
| HALF_LOCKED2 | &log_ni->runlist.lock | ||
| HALF_LOCKED2 | &mapping->invalidate_lock | ||
| HALF_LOCKED2 | &mft_ni->mrec_lock | ||
| HALF_LOCKED2 | &mftbmp_ni->runlist.lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &ni->file.run_lock | ||
| HALF_LOCKED2 | &ni->ni_lock | ||
| HALF_LOCKED2 | &nm_i->nat_tree_lock.internal_rwsem | ||
| HALF_LOCKED2 | &sbi->cp_global_sem.internal_rwsem | ||
| HALF_LOCKED2 | &sbi->cp_rwsem.internal_rwsem | ||
| HALF_LOCKED2 | &sbi->gc_lock.internal_rwsem | ||
| HALF_LOCKED2 | &sbi->pin_sem.internal_rwsem | ||
| HALF_LOCKED2 | &session->mutex | ||
| HALF_LOCKED2 | &sit_i->sentry_lock | ||
| HALF_LOCKED2 | &src_inode->i_rwsem | ||
| HALF_LOCKED2 | &vol->lcnbmp_lock | ||
| HALF_LOCKED2 | &vol->mftbmp_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | global &ksm_thread_mutex | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | ptl | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/addr.c ceph_find_incompatible() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 4096-ptr_max |
| PARAM_VALUE | 0 | sc->seq | 1-u64max |
| DATA_SOURCE | 0 | sc | r page_snap_context |
| RX_PATH | |||
| TASK_NOT_RUNNING |
fs/ceph/addr.c ceph_uninline_data() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| LOCK2 | &fsc->mdsc->snap_rwsem | ||
| HALF_LOCKED2 | &dentry->d_lockref.lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_mds_client)->snap_rwsem |
fs/ceph/addr.c ceph_uninline_data() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ci->i_ceph_lock | ||
| LOCK2 | &fsc->mdsc->snap_rwsem | ||
| HALF_LOCKED2 | &dentry->d_lockref.lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_mds_client)->snap_rwsem |
fs/ceph/addr.c ceph_uninline_data() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ci->i_ceph_lock | ||
| LOCK2 | &fsc->mdsc->snap_rwsem | ||
| HALF_LOCKED2 | &dentry->d_lockref.lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_mds_client)->snap_rwsem |
fs/ceph/addr.c get_oldest_context() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/addr.c get_oldest_context() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ci->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/file.c ceph_aio_retry_work() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/file.c ceph_aio_retry_work() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 1-u64max |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | &ci->i_ceph_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/file.c ceph_write_iter() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| LOCK2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/ceph/file.c ceph_write_iter() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 1-u64max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ci->i_ceph_lock | ||
| LOCK2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/ceph/file.c ceph_zero_partial_object() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| LOCK2 | &inode->i_mapping->invalidate_lock | ||
| LOCK2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct address_space)->invalidate_lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/ceph/file.c ceph_zero_partial_object() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 1-u64max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &ci->i_ceph_lock | ||
| LOCK2 | &inode->i_mapping->invalidate_lock | ||
| LOCK2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct address_space)->invalidate_lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
net/ceph/osd_client.c ceph_osdc_alloc_request() -> ceph_get_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | sc | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &lreq->lock | ||
| HALF_LOCKED2 | &mdsc->pool_perm_rwsem | ||
| HALF_LOCKED2 | &obj_req->state_mutex | ||
| HALF_LOCKED2 | &osdc->lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &rbd_dev->lock_rwsem | ||
| HALF_LOCKED2 | &rbd_dev->watch_mutex |