Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

fs/ceph/mds_client.c __ceph_mdsc_drop_dentry_lease() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
BUF_SIZE 0 dentry (-1)-s32max
BUF_SIZE 0 dentry (-1)-s32max
DATA_SOURCE 0 dentry $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
USER_DATA 0 dentry->d_parent->__d_name.hash 0-u32max[c]
USER_DATA 0 *dentry->__d_name.name 0-255
USER_DATA 0 *dentry->d_parent->__d_name.name 0-255
UNITS 0 dentry unit_jiffy
USER_PTR 0 dentry->__d_name.name
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &mdsc->mutex
HALF_LOCKED2 &session->s_mutex
TYPE_LOCK (struct lockref)->lock

fs/ceph/mds_client.c __do_request() -> ceph_dentry()

Type Parameter Key Value
BUF_SIZE 0 dentry (-1)-s32max
BUF_SIZE 0 dentry (-1)-s32max
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
USER_DATA 0 dentry->d_parent->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_sb->s_flags 0-u64max[c]
USER_DATA 0 *dentry->__d_name.name 0-255
USER_DATA 0 *dentry->d_parent->__d_name.name 0-255
UNITS 0 dentry unit_jiffy
USER_PTR 0 dentry->__d_name.name
LOCK2 &mdsc->mutex
TYPE_LOCK (struct ceph_mds_client)->mutex

fs/ceph/mds_client.c d_find_primary() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &inode->i_lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &s->lock
HALF_LOCKED2 &session->s_mutex
TYPE_LOCK (struct inode)->i_lock
TYPE_LOCK (struct lockref)->lock

fs/ceph/mds_client.c handle_lease() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
CAPPED_DATA 0 dentry->d_name.hash 1
DATA_SOURCE 0 dentry r d_lookup
PREEMPT_ADD <- disables preempt
LOCK2 &session->s_mutex
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &parent->d_lockref.lock
TYPE_LOCK (struct ceph_mds_session)->s_mutex
TYPE_LOCK (struct lockref)->lock

fs/ceph/caps.c ceph_encode_dentry_release() -> ceph_dentry()

Type Parameter Key Value
BUF_SIZE 0 dentry (-1)-s32max
BUF_SIZE 0 dentry (-1)-s32max
DATA_SOURCE 0 dentry $1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
USER_DATA 0 dentry->d_parent->__d_name.hash 0-u32max[c]
USER_DATA 0 *dentry->__d_name.name 0-255
USER_DATA 0 *dentry->d_parent->__d_name.name 0-255
UNITS 0 dentry unit_jiffy
USER_PTR 0 dentry->__d_name.name
LOCK2 &mdsc->mutex
HALF_LOCKED2 &session->s_mutex
TYPE_LOCK (struct ceph_mds_client)->mutex

fs/ceph/inode.c __update_dentry_lease() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $1
PREEMPT_ADD
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &req->r_fill_mutex
HALF_LOCKED2 &session->s_mutex
TYPE_LOCK (struct lockref)->lock

fs/ceph/inode.c ceph_readdir_prepopulate() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
CAPPED_DATA 0 dentry->d_name.hash 1
DATA_SOURCE 0 dentry r d_lookup
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
LOCK2 &mdsc->snap_rwsem
LOCK2 &req->r_fill_mutex
LOCK2 &session->s_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &dentry->d_lockref.lock
TYPE_LOCK (struct ceph_mds_client)->snap_rwsem
TYPE_LOCK (struct ceph_mds_request)->r_fill_mutex
TYPE_LOCK (struct ceph_mds_session)->s_mutex

fs/ceph/inode.c ceph_readdir_prepopulate() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
LOCK2 &mdsc->snap_rwsem
LOCK2 &req->r_fill_mutex
LOCK2 &session->s_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 0 &dentry->d_lockref.lock
TYPE_LOCK (struct ceph_mds_client)->snap_rwsem
TYPE_LOCK (struct ceph_mds_request)->r_fill_mutex
TYPE_LOCK (struct ceph_mds_session)->s_mutex

fs/ceph/inode.c splice_dentry() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry r d_find_any_alias
LOCK2 &mdsc->snap_rwsem
LOCK2 &req->r_fill_mutex
LOCK2 &session->s_mutex
HALF_LOCKED2 &dn->d_lockref.lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ceph_mds_client)->snap_rwsem
TYPE_LOCK (struct ceph_mds_request)->r_fill_mutex
TYPE_LOCK (struct ceph_mds_session)->s_mutex

fs/ceph/inode.c splice_dentry() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
LOCK2 &mdsc->snap_rwsem
LOCK2 &req->r_fill_mutex
LOCK2 &session->s_mutex
HALF_LOCKED2 &dn->d_lockref.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &realdn->d_lockref.lock
TYPE_LOCK (struct ceph_mds_client)->snap_rwsem
TYPE_LOCK (struct ceph_mds_request)->r_fill_mutex
TYPE_LOCK (struct ceph_mds_session)->s_mutex

fs/ceph/dir.c __dcache_readdir() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry r __dcache_find_get_entry
RX_PATH
TASK_NOT_RUNNING
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 0 &dentry->d_lockref.lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/dir.c __dcache_readdir() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry r __dcache_find_get_entry
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dentry->d_name.name
LOCK2 &inode->i_rwsem
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 &last->d_lockref.lock
TYPE_LOCK (struct inode)->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c __dcache_readdir() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &inode->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 0 &dentry->d_lockref.lock
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/dir.c __dentry_lease_check() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $0
LOCK2 &mdsc->dentry_list_lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ceph_mds_client)->dentry_list_lock
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c __dir_lease_check() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $0
LOCK2 &mdsc->dentry_list_lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct ceph_mds_client)->dentry_list_lock
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c __dir_lease_try_check() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dentry->d_fsdata->d_fsdata
NO_OVERFLOW_SIMPLE 0 dentry->moved->d_inode->i_size
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &mdsc->dentry_list_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c ceph_async_unlink_cb() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
UNITS 0 dentry unit_jiffy
HALF_LOCKED2 &pool->lock

fs/ceph/dir.c ceph_d_delete() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
CAPPED_DATA 0 dentry 1
DATA_SOURCE 0 dentry $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dentry->d_fsdata->d_fsdata
NO_OVERFLOW_SIMPLE 0 dentry->moved->d_inode->i_size
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 global &mount_lock.lock
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c ceph_d_prune() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $0
PARAM_COMPARE 0 dentry != $0->d_parent
PARAM_COMPARE 0 dentry != $0->d_parent
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
NO_OVERFLOW_SIMPLE 0 dentry->d_fsdata->d_fsdata
NO_OVERFLOW_SIMPLE 0 dentry->moved->d_inode->i_size
UNITS 0 dentry unit_jiffy
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &req->r_fill_mutex
HALF_LOCKED2 &session->s_mutex
HALF_LOCKED2 0 &dentry->d_inode->i_rwsem
HALF_LOCKED2 0 &dentry->d_lockref.lock
HALF_LOCKED2 0 &dentry->d_sb->s_vfs_rename_mutex

fs/ceph/dir.c ceph_d_release() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
NO_OVERFLOW_SIMPLE 0 dentry->d_fsdata->d_fsdata
NO_OVERFLOW_SIMPLE 0 dentry->moved->d_inode->i_size
HALF_LOCKED2 0 &dentry->d_inode->i_rwsem
HALF_LOCKED2 0 &dentry->d_sb->s_vfs_rename_mutex

fs/ceph/dir.c ceph_d_revalidate() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
BUF_SIZE 0 dentry (-1),1-s32max
BUF_SIZE 0 dentry (-1),1-s32max
BUF_SIZE 0 dentry->d_parent s32min,(-1)-s32max
DATA_SOURCE 0 dentry $2
BIT_INFO 0 dentry->d_flags 0x4,0xffffffffffffffff
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_parent->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_sb->s_flags 0-u64max[c]
USER_DATA 0 *dentry->__d_name.name 0-255
USER_DATA 0 *dentry->d_parent->__d_name.name 0-255
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
USER_PTR 0 dentry->__d_name.name
HALF_LOCKED2 0 &dentry->d_lockref.lock

fs/ceph/dir.c ceph_invalidate_dentry_lease() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 1-u64max
DATA_SOURCE 0 dentry $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
USER_DATA 0 dentry->d_parent->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_sb->s_flags 0-u64max[c]
USER_DATA 0 *dentry->__d_name.name 0-255
USER_DATA 0 *dentry->d_parent->__d_name.name 0-255
UNITS 0 dentry unit_jiffy
USER_PTR 0 dentry->__d_name.name
HALF_LOCKED2 &mdsc->mutex
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &req->r_fill_mutex
HALF_LOCKED2 &session->s_mutex

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

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
BUF_SIZE 0 dentry (-1)-s32max
BUF_SIZE 0 dentry (-1)-s32max
BUF_SIZE 0 dentry->d_parent s32min,(-1)-s32max
DATA_SOURCE 0 dentry $1
STR_LEN 0 dentry->d_parent (-1),1-24,26-27,31-34,63,99,115,254-255
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
USER_DATA 0 dentry->d_parent->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_parent->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_parent->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
USER_DATA 0 dentry->d_parent->d_sb->s_flags 0-u64max[c]
USER_DATA 0 dentry->d_sb->s_flags 0-u64max[c]
USER_DATA 0 *dentry->__d_name.name 0-255
USER_DATA 0 *dentry->d_parent->__d_name.name 0-255
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
USER_PTR 0 dentry->__d_name.name
USER_PTR 0 dentry->d_parent->__d_name.name
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 0 &dentry->d_lockref.lock

fs/ceph/dir.c ceph_unlink() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
BUF_SIZE 0 dentry (-1),1-s32max
BUF_SIZE 0 dentry (-1),1-s32max
CAPPED_DATA 0 dentry 1
CAPPED_DATA 0 dentry->d_fsdata->lease_shared_gen 1
CAPPED_DATA 0 dentry->d_parent->d_inode 1
DATA_SOURCE 0 dentry $1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
NO_OVERFLOW_SIMPLE 0 dentry->dentry->d_inode->i_size
NO_OVERFLOW_SIMPLE 0 dentry->moved->d_inode->i_size
HALF_LOCKED2 &dir->d_inode->i_rwsem
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &dn->d_lockref.lock
HALF_LOCKED2 &target->i_rwsem
HALF_LOCKED2 0 &dentry->d_inode->i_rwsem
HALF_LOCKED2 0 &dentry->d_lockref.lock
HALF_LOCKED2 0 &dentry->d_sb->s_vfs_rename_mutex
TYPE_LOCK (struct inode)->i_rwsem

fs/ceph/dir.c dentry_lease_is_valid() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
BUF_SIZE 0 dentry (-1)-s32max
BUF_SIZE 0 dentry (-1)-s32max
BUF_SIZE 0 dentry->d_parent (-1)-s32max
DATA_SOURCE 0 dentry $0
BIT_INFO 0 dentry->d_flags 0x4,0xffffffffffffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_parent->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_sb->s_flags 0-u64max[c]
USER_DATA 0 *dentry->__d_name.name 0-255
USER_DATA 0 *dentry->d_parent->__d_name.name 0-255
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
USER_PTR 0 dentry->__d_name.name
LOCK2 0 &dentry->d_lockref.lock
TYPE_LOCK (struct lockref)->lock

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

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PARAM_VALUE 0 dentry->d_fsdata 0,4096-ptr_max
BUF_SIZE 0 dentry (-1)-s32max
BUF_SIZE 0 dentry (-1)-s32max
BUF_SIZE 0 dentry->d_parent (-1)-s32max
DATA_SOURCE 0 dentry $1
BIT_INFO 0 dentry->d_flags 0x4,0xffffffffffffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_parent->__d_name.hash 0-u32max[c]
USER_DATA 0 dentry->d_sb->s_flags 0-u64max[c]
USER_DATA 0 *dentry->__d_name.name 0-255
USER_DATA 0 *dentry->d_parent->__d_name.name 0-255
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
USER_PTR 0 dentry->__d_name.name
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &dir->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c get_caps_for_async_unlink() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
BUF_SIZE 0 dentry (-1),1-s32max
BUF_SIZE 0 dentry (-1),1-s32max
CAPPED_DATA 0 dentry 1
CAPPED_DATA 0 dentry->d_parent->d_inode 1
DATA_SOURCE 0 dentry $1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->d_inode->i_mode 0-u16max
USER_DATA 0 dentry->d_inode->i_size (-9223372036854775807)-(-4),0-s64max
NO_OVERFLOW_SIMPLE 0 dentry->moved->d_inode->i_size
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &dir->d_inode->i_rwsem
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &dn->d_lockref.lock
HALF_LOCKED2 &target->i_rwsem
HALF_LOCKED2 0 &dentry->d_inode->i_rwsem
HALF_LOCKED2 0 &dentry->d_sb->s_vfs_rename_mutex
TYPE_LOCK (struct inode)->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/ceph/file.c ceph_atomic_open() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $1
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
HALF_LOCKED2 &dir_inode->i_rwsem
HALF_LOCKED2 &dn->d_lockref.lock
HALF_LOCKED2 0 &dentry->d_lockref.lock

fs/ceph/file.c ceph_finish_async_create() -> ceph_dentry()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $2
HALF_LOCKED2 &dn->d_lockref.lock

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

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $1
HALF_LOCKED2 &dn->d_lockref.lock