Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 7 files:
- drivers/block/rbd.c
- fs/ceph/addr.c
- fs/ceph/caps.c
- fs/ceph/file.c
- fs/ceph/snap.c
- net/ceph/osd_client.c, line 502
- net/ceph/snapshot.c, line 63
Smatch caller information:
fs/ceph/snap.c __destroy_snap_realm() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mdsc->snap_rwsem |
fs/ceph/snap.c build_snap_context() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 0,4096-ptr_max |
| NOCHECK_CALL | |||
| LOCK2 | &mdsc->snap_rwsem | ||
| HALF_LOCKED2 | &session->s_mutex | ||
| TYPE_LOCK | (struct ceph_mds_client)->snap_rwsem |
fs/ceph/snap.c build_snap_context() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 4096-ptr_max |
| NOCHECK_CALL | |||
| LOCK2 | &mdsc->snap_rwsem | ||
| HALF_LOCKED2 | &session->s_mutex | ||
| TYPE_LOCK | (struct ceph_mds_client)->snap_rwsem |
fs/ceph/snap.c ceph_queue_cap_snap() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| LOCK2 | &mdsc->snap_rwsem | ||
| HALF_LOCKED2 | &session->s_mutex | ||
| TYPE_LOCK | (struct ceph_mds_client)->snap_rwsem |
fs/ceph/caps.c __ceph_put_cap_refs() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 1-u64max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ci->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/caps.c ceph_purge_inode_cap() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/caps.c ceph_put_wrbuffer_cap_refs() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 1-u64max |
| CAPPED_DATA | 0 | sc | 1 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/caps.c ceph_try_drop_cap_snap() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
fs/ceph/caps.c handle_cap_flush_ack() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 1-u64max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &mdsc->cap_dirty_lock | ||
| TYPE_LOCK | (struct ceph_mds_client)->cap_dirty_lock |
fs/ceph/caps.c handle_cap_flushsnap_ack() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_byte |
fs/ceph/caps.c remove_capsnaps() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_byte |
| LOCK2 | &ci->i_ceph_lock | ||
| TYPE_LOCK | (struct ceph_inode_info)->i_ceph_lock |
drivers/block/rbd.c rbd_dev_update_header() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &rbd_dev->header_rwsem | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &rbd_dev->lock_rwsem | ||
| TYPE_LOCK | (struct rbd_device)->header_rwsem |
drivers/block/rbd.c rbd_header_from_disk() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 0,4096-ptr_max |
| PARAM_VALUE | 0 | sc->nref.refs.counter | 1 |
| PARAM_VALUE | 0 | sc->num_snaps | 1-u32max |
| BUF_SIZE | 0 | sc | (-1),24-s32max |
| BUF_SIZE | 0 | sc | (-1),24-s32max |
| DATA_SOURCE | 0 | sc | r ceph_create_snap_context |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &rbd_dev->header_rwsem | ||
| HALF_LOCKED2 | &rbd_dev->lock_rwsem |
drivers/block/rbd.c rbd_image_header_cleanup() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &of->mutex |
drivers/block/rbd.c rbd_img_request_destroy() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &pool->lock |
fs/ceph/addr.c ceph_define_writeback_range() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_page |
| HALF_LOCKED2 | &mapping->invalidate_lock |
fs/ceph/addr.c ceph_find_incompatible() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 4096-ptr_max |
| PARAM_VALUE | 0 | sc->seq | 0-18446744073709551614 |
| CAPPED_DATA | 0 | sc->seq | 1 |
| DATA_SOURCE | 0 | sc | r get_oldest_context |
| BIT_INFO | 0 | sc | 0x0,0x0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ceph/addr.c ceph_find_incompatible() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 4096-ptr_max |
| DATA_SOURCE | 0 | sc | r get_oldest_context |
| BIT_INFO | 0 | sc | 0x0,0x0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ceph/addr.c ceph_invalidate_folio() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | sc | (-1),1-s32max |
| BUF_SIZE | 0 | sc | (-1),1-s32max |
| DATA_SOURCE | 0 | sc | r folio_detach_private |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_byte |
fs/ceph/addr.c ceph_netfs_check_write_begin() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 4096-ptr_max |
| DATA_SOURCE | 0 | sc | r ceph_find_incompatible |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &inode->i_rwsem |
fs/ceph/addr.c ceph_page_mkwrite() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 4096-ptr_max |
| DATA_SOURCE | 0 | sc | r ceph_find_incompatible |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ceph/addr.c ceph_uninline_data() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 0,4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &dentry->d_lockref.lock |
fs/ceph/addr.c ceph_writepages_start() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_page |
fs/ceph/addr.c context_is_writeable_or_written() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 0,4096-ptr_max |
| DATA_SOURCE | 0 | sc | r get_oldest_context |
| BIT_INFO | 0 | sc | 0x0,0x0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ceph/addr.c write_folio_nounlock() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 4096-ptr_max |
| PARAM_VALUE | 0 | sc->seq | 0-18446744073709551614 |
| CAPPED_DATA | 0 | sc->seq | 1 |
| DATA_SOURCE | 0 | sc | r get_oldest_context |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ceph/addr.c write_folio_nounlock() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 4096-ptr_max |
| DATA_SOURCE | 0 | sc | r get_oldest_context |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ceph/addr.c write_folio_nounlock() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 4096-ptr_max |
| CAPPED_DATA | 0 | sc | 1 |
| CAPPED_DATA | 0 | sc->seq | 1 |
| DATA_SOURCE | 0 | sc | r page_snap_context |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | sc | unit_byte |
fs/ceph/addr.c writepages_finish() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | sc | (-1),1-s32max |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &pool->lock |
fs/ceph/file.c ceph_aio_retry_work() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 0,4096-ptr_max |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &pool->lock |
fs/ceph/file.c ceph_write_iter() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 0,4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &pool->lock |
fs/ceph/file.c ceph_zero_partial_object() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sc | 0,4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &inode->i_mapping->invalidate_lock | ||
| LOCK2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct address_space)->invalidate_lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
net/ceph/osd_client.c ceph_osdc_release_request() -> ceph_put_snap_context()
| Type | Parameter | Key | Value |
|---|---|---|---|
| NOCHECK_CALL |