Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

fs/ceph/inode.c __ceph_choose_frag() -> __ceph_find_frag()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
DATA_SOURCE 0 ci $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &ci->i_fragtree_mutex
HALF_LOCKED2 &mdsc->snap_rwsem
TYPE_LOCK (struct ceph_inode_info)->i_fragtree_mutex

fs/ceph/inode.c ceph_fill_dirfrag() -> __ceph_find_frag()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
CAPPED_DATA 0 &ci->i_fragtree_mutex 1
DATA_SOURCE 0 ci r ceph_inode
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mdsc->snap_rwsem
LOCK2 0 &ci->i_fragtree_mutex
HALF_LOCKED2 &req->r_fill_mutex
HALF_LOCKED2 &session->s_mutex
TYPE_LOCK (struct ceph_inode_info)->i_fragtree_mutex
TYPE_LOCK (struct ceph_mds_client)->snap_rwsem

fs/ceph/inode.c ceph_fill_fragtree() -> __ceph_find_frag()

Type Parameter Key Value
PARAM_VALUE 0 ci 4096-ptr_max
CAPPED_DATA 0 ci->i_fragtree_nsplits 1
CAPPED_DATA 0 &ci->i_fragtree_mutex 1
DATA_SOURCE 0 ci r ceph_inode
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mdsc->snap_rwsem
LOCK2 0 &ci->i_fragtree_mutex
HALF_LOCKED2 &req->r_fill_mutex
HALF_LOCKED2 &session->s_mutex
TYPE_LOCK (struct ceph_inode_info)->i_fragtree_mutex
TYPE_LOCK (struct ceph_mds_client)->snap_rwsem