Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

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

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
DATA_SOURCE 0 ci $0
NOSPEC 0 ci->i_wanted_max_size
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 ci->i_wanted_max_size 1-9223372036854775805,9223372036854775808-u64max[c]
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock

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

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
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
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 ci->i_dir_pin s32min-s32max
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_dir_is_complete()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
DATA_SOURCE 0 ci r ceph_inode
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 &dir->i_rwsem
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock

fs/ceph/file.c try_prep_async_create() -> __ceph_dir_is_complete()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
DATA_SOURCE 0 ci r ceph_inode
PREEMPT_ADD <- disables preempt
LOCK2 0 &ci->i_ceph_lock
HALF_LOCKED2 &dn->d_lockref.lock
TYPE_LOCK (struct ceph_inode_info)->i_ceph_lock