Documented in 1 files:
Defined in 1 files as a function:
Referenced in 9 files:
- fs/autofs/expire.c, line 81
- fs/autofs/root.c
- fs/ceph/dir.c, line 1702
- fs/ceph/mds_client.c
- fs/configfs/dir.c, line 597
- fs/dcache.c
- fs/libfs.c
- fs/ocfs2/dcache.c, line 154
- include/linux/dcache.h, line 378
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 |