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_mdsc_submit_request() -> __ceph_touch_fmode()

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_sb 4096-ptr_max
PARAM_VALUE 1 mdsc 4096-ptr_max
PARAM_VALUE 1 mdsc->fsc 4096-ptr_max
PARAM_VALUE 2 fmode 1-2
DATA_SOURCE 0 ci r ceph_inode
DATA_SOURCE 1 mdsc $0
FUZZY_MAX 2 fmode 2
HARD_MAX 2 fmode 2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ci->i_ceph_lock
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock

fs/ceph/caps.c try_get_cap_refs() -> __ceph_touch_fmode()

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 1 mdsc->snap_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 1 mdsc->snap_rwsem.first_waiter->type 0-1
PARAM_VALUE 2 fmode 0-3,256-259,512-515,768-771
DATA_SOURCE 0 ci r ceph_inode
DATA_SOURCE 2 fmode $4
BIT_INFO 2 fmode 0x0,0x30f
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 1 &mdsc->snap_rwsem
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock

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

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_nr_by_mode 4096-ptr_max
PARAM_VALUE 1 mdsc 4096-ptr_max
PARAM_VALUE 1 mdsc->fsc 4096-ptr_max
DATA_SOURCE 0 ci r ceph_inode
BIT_INFO 2 fmode 0x4,0x7fff
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 0 &ci->i_ceph_lock
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock

fs/ceph/inode.c ceph_fill_inode() -> __ceph_touch_fmode()

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_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 mdsc 4096-ptr_max
PARAM_VALUE 1 mdsc->fsc 4096-ptr_max
PARAM_VALUE 2 fmode 0-s32max
BUF_SIZE 0 ci->fscrypt_auth (-1),1-s32max
BUF_SIZE 0 ci->i_snapid_map (-1),64
BUF_SIZE 0 ci->i_xattrs.blob (-1)-0,32
DATA_SOURCE 0 ci r ceph_inode
DATA_SOURCE 1 mdsc r ceph_sb_to_mdsc
DATA_SOURCE 2 fmode $5
FUZZY_MAX 2 fmode 0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 ci->i_dir_pin s32min-s32max
USER_DATA 0 ci->i_inline_version 1-u64max[c]
USER_DATA 0 ci->i_max_bytes 0
USER_DATA 0 ci->i_max_files 0
USER_DATA 0 ci->i_rsnaps 0-u64max
USER_DATA 0 ci->i_xattrs.blob->alloc_len 5-u32max[c]
USER_DATA 0 ci->i_xattrs.blob->vec.iov_len 5-u32max[c]
LOCK2 &mdsc->snap_rwsem
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 &req->r_fill_mutex
HALF_LOCKED2 &session->s_mutex
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock
TYPE_LOCK (struct ceph_mds_client)->snap_rwsem

fs/ceph/dir.c ceph_lookup() -> __ceph_touch_fmode()

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_sb 4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_fs_info 4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_fs_info->mdsc 4096-ptr_max
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_fs_info->mdsc->metric.i_caps_hit.lock.dep_map->name 0-255
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_fs_info->mdsc->metric.i_caps_hit.lock.owner (-1)
PARAM_VALUE 0 ci->netfs.inode.i_sb->s_fs_info->mdsc->metric.i_caps_hit.lock.owner_cpu 4294967295
PARAM_VALUE 2 fmode 1
DATA_SOURCE 0 ci r ceph_inode
DATA_SOURCE 1 mdsc r ceph_sb_to_mdsc
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 &dir->i_rwsem
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock

fs/ceph/dir.c ceph_readdir() -> __ceph_touch_fmode()

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 2 fmode 2
DATA_SOURCE 0 ci r ceph_inode
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/dir.c dir_lease_is_valid() -> __ceph_touch_fmode()

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_sb 4096-ptr_max
PARAM_VALUE 1 mdsc 4096-ptr_max
PARAM_VALUE 1 mdsc->fsc 4096-ptr_max
PARAM_VALUE 2 fmode 1
DATA_SOURCE 0 ci r ceph_inode
DATA_SOURCE 1 mdsc $2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dir->i_rwsem
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock

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

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_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 mdsc 4096-ptr_max
PARAM_VALUE 1 mdsc->fsc 4096-ptr_max
PARAM_VALUE 1 mdsc->s_cap_auths_num 0-s32max
PARAM_VALUE 2 fmode 0-3
CAPPED_DATA 1 mdsc->s_cap_auths_num 1
DATA_SOURCE 0 ci r ceph_inode
DATA_SOURCE 2 fmode r ceph_flags_to_mode
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 &dentry->d_lockref.lock
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock

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

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 1 mdsc 4096-ptr_max
PARAM_VALUE 1 mdsc->fsc 4096-ptr_max
PARAM_VALUE 1 mdsc->s_cap_auths_num 0-s32max
PARAM_VALUE 2 fmode 0-3
CAPPED_DATA 1 mdsc->s_cap_auths_num 1
DATA_SOURCE 0 ci r ceph_inode
DATA_SOURCE 2 fmode r ceph_flags_to_mode
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 &dentry->d_lockref.lock
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock

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

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 1 mdsc 4096-ptr_max
PARAM_VALUE 1 mdsc->fsc 4096-ptr_max
PARAM_VALUE 2 fmode 0-3,256-259,512-515,768-771
DATA_SOURCE 0 ci r ceph_inode
DATA_SOURCE 1 mdsc r ceph_sb_to_mdsc
DATA_SOURCE 2 fmode $1
BIT_INFO 2 fmode 0x0,0x30f
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &ci->i_ceph_lock
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock