Documented in 1 files:

Defined in 1 files as a function:

Referenced in 9 files:

Smatch caller information:

fs/configfs/dir.c detach_attrs() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &configfs_dirent_lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_sb->s_vfs_rename_mutex
TYPE_LOCK (struct lockref)->lock

fs/autofs/expire.c positive_after() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $1 [m]
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
UNITS 0 dentry unit_jiffy
LOCK2 &sbi->lookup_lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &found->d_lockref.lock
HALF_LOCKED2 &p->d_lockref.lock
TYPE_LOCK (struct autofs_sb_info)->lookup_lock
TYPE_LOCK (struct lockref)->lock

fs/ceph/mds_client.c ceph_wait_on_conflict_unlink() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
CAPPED_DATA 0 dentry->d_name.hash 1
CAPPED_DATA 0 dentry->d_parent 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
LOCK2 0 &dentry->d_lockref.lock
TYPE_LOCK (struct lockref)->lock

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

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/autofs/root.c autofs_lookup_active() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
CAPPED_DATA 0 dentry->d_name.hash 1
CAPPED_DATA 0 dentry->d_parent 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->lookup_lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dir->i_rwsem
TYPE_LOCK (struct autofs_sb_info)->lookup_lock
TYPE_LOCK (struct lockref)->lock

fs/autofs/root.c autofs_lookup_expiring() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
CAPPED_DATA 0 dentry->d_name.hash 1
CAPPED_DATA 0 dentry->d_parent 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sbi->lookup_lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &path->dentry->d_lockref.lock
TYPE_LOCK (struct autofs_sb_info)->lookup_lock
TYPE_LOCK (struct lockref)->lock

fs/exportfs/expfs.c dget_alias_ilocked() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PARAM_VALUE 0 dentry->d_lockref.count 1-s32max
DATA_SOURCE 0 dentry $0
FUZZY_MAX 0 dentry->d_lockref.count 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_lock
LOCK2 0 &dentry->d_lockref.lock
TYPE_LOCK (struct inode)->i_lock
TYPE_LOCK (struct lockref)->lock

fs/ceph/dir.c __dentry_leases_walk() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PARAM_VALUE 0 dentry->d_lockref.count s32min-(-129),(-127)-0
NOCHECK_CALL
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/ocfs2/dcache.c ocfs2_find_local_alias() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 global &dentry_attach_lock
TYPE_LOCK (struct inode)->i_lock
TYPE_LOCK (struct lockref)->lock

fs/libfs.c find_next_child() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &parent->d_lockref.lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &root->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/libfs.c find_positive_dentry() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $1 [m]
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 dentry->d_name.name
LOCK2 &parent->d_lockref.lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &dir_fp->readdir_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct inode)->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/libfs.c scan_positives() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
BIT_INFO 0 dentry->d_flags 0x0,0xfdffffff
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dentry->d_lockref.lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/dcache.c __d_find_alias() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_lock
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &fc->killsb
HALF_LOCKED2 &fi->i_sem.internal_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode->i_sb->s_umount
HALF_LOCKED2 &mdsc->mutex
HALF_LOCKED2 &nilfs->ns_snapshot_mount_mutex
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 &session->s_mutex
TYPE_LOCK (struct inode)->i_lock
TYPE_LOCK (struct lockref)->lock

fs/dcache.c d_alloc() -> dget_dlock()

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
STR_LEN 0 dentry (-1)-s32max
STR_LEN 0 dentry (-1)-s32max
PREEMPT_ADD <- disables preempt
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
NO_OVERFLOW_SIMPLE 0 dentry->d_inode->i_blkbits
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
NO_OVERFLOW_SIMPLE 0 dentry->moved->d_inode->i_size
UNITS 0 dentry unit_jiffy
USER_PTR 0 dentry->__d_name.name
USER_PTR 0 dentry->d_parent->__d_name.name
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &mdsc->snap_rwsem
HALF_LOCKED2 &req->r_fill_mutex
HALF_LOCKED2 &session->s_mutex
HALF_LOCKED2 global &efivars_lock
HALF_LOCKED2 0 &dentry->d_inode->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/dcache.c d_alloc_parallel() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
BUF_SIZE 0 dentry s32min,(-1)-s32max
BUF_SIZE 0 dentry s32min,(-1)-s32max
DATA_SOURCE 0 dentry $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
USER_DATA 0 *dentry->__d_name.name 0-255
NO_OVERFLOW_SIMPLE 0 dentry->d_fsdata->d_fsdata
NO_OVERFLOW_SIMPLE 0 dentry->d_inode->i_size
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize
NO_OVERFLOW_SIMPLE 0 dentry->d_sb->s_blocksize_bits
UNITS 0 dentry unit_jiffy
USER_PTR 0 dentry->__d_name.name
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &dir_inode->i_rwsem
HALF_LOCKED2 &dvnode->rmdir_lock
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 0 &dentry->d_inode->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/dcache.c d_alloc_parallel() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PARAM_VALUE 0 dentry->d_lockref.count s32min-(-129),(-127)-s32max
CAPPED_DATA 0 dentry->d_name.hash 1
CAPPED_DATA 0 dentry->d_parent 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &dir_inode->i_rwsem
HALF_LOCKED2 &dvnode->rmdir_lock
HALF_LOCKED2 &inode->i_rwsem
TYPE_LOCK (struct lockref)->lock

fs/dcache.c d_make_persistent() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
DATA_SOURCE 0 dentry $0
BIT_INFO 0 dentry->d_flags 0x8000000,0xffffffff
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 0 dentry->d_inode->i_size
LOCK2 &inode->i_lock
LOCK2 0 &dentry->d_lockref.lock
TYPE_LOCK (struct inode)->i_lock
TYPE_LOCK (struct lockref)->lock

fs/dcache.c dget_alias_ilocked() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PARAM_VALUE 0 dentry->d_lockref.count 1-s32max
DATA_SOURCE 0 dentry $0
FUZZY_MAX 0 dentry->d_lockref.count 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_lock
LOCK2 0 &dentry->d_lockref.lock
TYPE_LOCK (struct inode)->i_lock
TYPE_LOCK (struct lockref)->lock

fs/dcache.c find_submount() -> dget_dlock()

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 $1
BIT_INFO 0 dentry->d_flags 0x0,0xfdffffff
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 dentry->__d_name.hash 0-u32max[c]
UNITS 0 dentry unit_jiffy
USER_PTR 0 dentry->__d_name.name
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 global &mount_lock.lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct lockref)->lock

fs/dcache.c shrink_dcache_for_umount() -> dget_dlock()

Type Parameter Key Value
PARAM_VALUE 0 dentry 4096-ptr_max
PARAM_VALUE 0 dentry->d_lockref.count s32min-(-129),(-127)-s32max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 dentry unit_jiffy
USER_PTR 0 dentry->__d_name.name
LOCK2 0 &dentry->d_lockref.lock
HALF_LOCKED2 &s->s_umount
HALF_LOCKED2 &sb->s_umount
HALF_LOCKED2 global &cifs_mount_mutex
TYPE_LOCK (struct lockref)->lock