Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

fs/ceph/mds_client.c ceph_cap_unlink_work() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_cap_delay_list.next->prev 4096-ptr_max
PARAM_VALUE 0 ci->i_cap_delay_list.prev->next 4096-ptr_max
PARAM_VALUE 1 flags 2
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ceph/caps.c __ceph_put_cap_refs() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->netfs.inode.i_data.host->i_sb->s_export_op->encode_fh 0,2,4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 ci->netfs.inode.i_sb 4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_cop->empty_dir 0,86,4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_cop->get_context 0,706,4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_cop->inode_info_offs 1632,1720,1808,2632,2648,2704,2712
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_cop->set_context 0,67,4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_export_op->encode_fh 0,2,4096-ptr_max
PARAM_VALUE 1 flags 0
DATA_SOURCE 0 ci $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &mdsc->mutex

fs/ceph/caps.c ceph_check_delayed_caps() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 1 flags 0
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ceph/caps.c ceph_put_wrbuffer_cap_refs() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->i_wrbuffer_ref 0
PARAM_VALUE 0 ci->netfs.inode.i_sb 4096-ptr_max
PARAM_VALUE 1 flags 0
CAPPED_DATA 0 &ci->i_cap_snaps 1
DATA_SOURCE 0 ci $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ceph/caps.c check_max_size() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_auth_cap 4096-ptr_max
PARAM_VALUE 0 ci->i_auth_cap->issued s32min-(-1),4096-s32max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->i_max_size 0-18446744073709551614
PARAM_VALUE 0 ci->i_requested_max_size 0-18446744073709551614
PARAM_VALUE 0 ci->i_wanted_max_size 1-u64max
PARAM_VALUE 1 flags 1
CAPPED_DATA 0 ci->i_max_size 1
CAPPED_DATA 0 ci->i_requested_max_size 1
DATA_SOURCE 0 ci r ceph_inode
PARAM_COMPARE 0 ci->i_max_size < $0->i_wanted_max_size
PARAM_COMPARE 0 ci->i_requested_max_size < $0->i_wanted_max_size
BIT_INFO 0 ci->i_auth_cap->issued 0x1000,0xffffffff
NOSPEC 0 ci->i_wanted_max_size
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 ci->i_wanted_max_size 1-9223372036854775805,9223372036854775808-u64max[c]

fs/ceph/caps.c flush_dirty_session_caps() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_export_op->encode_fh 0,2,4096-ptr_max
PARAM_VALUE 1 flags 2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ceph/caps.c handle_cap_grant() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_auth_cap 0,4096-ptr_max
PARAM_VALUE 0 ci->i_cached_layout.object_size 0
PARAM_VALUE 0 ci->i_cached_layout.pool_id 0
PARAM_VALUE 0 ci->i_cached_layout.pool_ns 0
PARAM_VALUE 0 ci->i_cached_layout.stripe_count 0
PARAM_VALUE 0 ci->i_cached_layout.stripe_unit 0
PARAM_VALUE 0 ci->i_caps.rb_node 0,4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->netfs.inode.i_sb 4096-ptr_max
PARAM_VALUE 1 flags 5,13
DATA_SOURCE 0 ci r ceph_inode
BIT_INFO 1 flags 0x5,0xd
NOCHECK_CALL

fs/ceph/caps.c handle_cap_grant() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_auth_cap 0,4096-ptr_max
PARAM_VALUE 0 ci->i_cached_layout.object_size 0
PARAM_VALUE 0 ci->i_cached_layout.pool_id 0
PARAM_VALUE 0 ci->i_cached_layout.pool_ns 0
PARAM_VALUE 0 ci->i_cached_layout.stripe_count 0
PARAM_VALUE 0 ci->i_cached_layout.stripe_unit 0
PARAM_VALUE 0 ci->i_caps.rb_node 0,4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->netfs.inode.i_sb 4096-ptr_max
PARAM_VALUE 1 flags 4,12
DATA_SOURCE 0 ci r ceph_inode
BIT_INFO 1 flags 0x4,0xc
NOCHECK_CALL

fs/ceph/ioctl.c ceph_ioctl_lazyio() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_cap_delay_list.next 4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->i_nr_by_mode 4096-ptr_max
PARAM_VALUE 1 flags 0
DATA_SOURCE 0 ci r ceph_inode
NOCHECK_CALL

fs/ceph/inode.c __ceph_do_pending_vmtruncate() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->i_truncate_mutex.dep_map->name 0-255
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_on 0
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 ci->i_truncate_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 ci->i_truncate_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 ci->i_truncate_pending 0
PARAM_VALUE 0 ci->i_wrbuffer_ref 0
PARAM_VALUE 1 flags 0
CAPPED_DATA 0 ci->i_truncate_pagecache_size 1
CAPPED_DATA 0 &ci->i_truncate_mutex 1
DATA_SOURCE 0 ci r ceph_inode
PARAM_COMPARE 0 ci->i_wrbuffer_ref <= $0->i_wrbuffer_ref_head
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ceph/inode.c ceph_do_invalidate_pages() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_caps.rb_node 0,4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->i_truncate_mutex.dep_map->name 0-255
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->blocked_on 0
PARAM_VALUE 0 ci->i_truncate_mutex.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 ci->i_truncate_mutex.osq.tail.counter 0-s32max
PARAM_VALUE 0 ci->i_truncate_mutex.wait_lock.dep_map->name 0-255
PARAM_VALUE 1 flags 0
CAPPED_DATA 0 &ci->i_truncate_mutex 1
DATA_SOURCE 0 ci r ceph_inode
PARAM_COMPARE 0 ci->i_rdcache_gen <= $0->i_rdcache_revoking
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ceph/inode.c ceph_inode_work() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 ci->netfs.inode.i_sb 4096-ptr_max
PARAM_VALUE 1 flags 0
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ceph/addr.c ceph_write_end() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 1 flags 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem

fs/ceph/file.c __ceph_copy_file_range() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_layout.pool_ns 0,4096-ptr_max
PARAM_VALUE 0 ci->i_layout.pool_ns->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 ci->i_layout.stripe_count 1
PARAM_VALUE 0 ci->netfs.inode.i_data.host->i_sb->s_export_op->encode_fh 0,2,4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 1 flags 3
CAPPED_DATA 0 ci->i_layout.object_size 1
CAPPED_DATA 0 ci->i_layout.stripe_unit 1
DATA_SOURCE 0 ci r ceph_inode
RX_PATH
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ceph/file.c ceph_aio_complete() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 1 flags 1
DATA_SOURCE 0 ci r ceph_inode
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock

fs/ceph/file.c ceph_direct_read_write() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 1 flags 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_open() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_auth_cap 0,4096-ptr_max
PARAM_VALUE 0 ci->i_cap_delay_list.next 4096-ptr_max
PARAM_VALUE 0 ci->i_caps.rb_node 0,4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->netfs.inode.i_sb 4096-ptr_max
PARAM_VALUE 1 flags 0
DATA_SOURCE 0 ci r ceph_inode
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dentry->d_lockref.lock

fs/ceph/file.c ceph_renew_caps() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_auth_cap 0,4096-ptr_max
PARAM_VALUE 0 ci->i_cap_delay_list.next 4096-ptr_max
PARAM_VALUE 0 ci->i_caps.rb_node 0,4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->netfs.inode.i_sb 4096-ptr_max
PARAM_VALUE 1 flags 0
DATA_SOURCE 0 ci r ceph_inode
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ceph/file.c ceph_sync_write() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 1 flags 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/file.c ceph_write_iter() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->netfs.inode.i_data.host->i_sb->s_export_op->encode_fh 0,2,4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 ci->netfs.inode.i_mapping->i_mmap_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 ci->netfs.inode.i_sb 4096-ptr_max
PARAM_VALUE 1 flags 2
DATA_SOURCE 0 ci r ceph_inode
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ceph/file.c wake_async_create_waiters() -> ceph_check_caps()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
PARAM_VALUE 0 ci->i_auth_cap->implemented 0-s32max
PARAM_VALUE 0 ci->i_auth_cap->issued 0-s32max
PARAM_VALUE 0 ci->i_auth_cap->mds_wanted 0-66047
PARAM_VALUE 0 ci->i_auth_cap->session->s_cap_flushing.prev 4096-ptr_max
PARAM_VALUE 0 ci->i_auth_cap->session->s_cap_flushing.prev->next 4096-ptr_max
PARAM_VALUE 0 ci->i_auth_cap->session->s_cap_flushing.prev->next->next 4096-ptr_max
PARAM_VALUE 0 ci->i_cap_delay_list.next->next 4096-ptr_max
PARAM_VALUE 0 ci->i_cap_delay_list.next->prev 4096-ptr_max
PARAM_VALUE 0 ci->i_cap_delay_list.prev->next 4096-ptr_max
PARAM_VALUE 0 ci->i_cap_delay_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 ci->i_ceph_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 ci->i_flushing_item.next 4096-ptr_max
PARAM_VALUE 0 ci->i_flushing_item.next->prev 4096-ptr_max
PARAM_VALUE 0 ci->i_flushing_item.prev->next 4096-ptr_max
PARAM_VALUE 1 flags 2
DATA_SOURCE 0 ci r ceph_inode
NOCHECK_CALL
HALF_LOCKED2 &pool->lock