Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 10 files:
- fs/dcache.c, line 3362
- fs/gfs2/super.c, line 1065
- fs/namei.c, line 823
- fs/namespace.c
- fs/nfsd/filecache.c, line 781
- fs/ntfs/namei.c, line 1305
- fs/overlayfs/namei.c, line 87
- fs/overlayfs/super.c
- fs/pnode.c, line 266
- fs/smb/server/vfs_cache.c, line 983
Smatch caller information:
fs/nfsd/filecache.c nfsd_file_close_export() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | old_dentry | 4096-ptr_max |
| CAPPED_DATA | 1 | old_dentry->d_sb | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &nfsd_mutex | ||
| HALF_LOCKED2 | &dev->lock | ||
| HALF_LOCKED2 | &devlink->lock | ||
| HALF_LOCKED2 | &net->xfrm.xfrm_cfg_mutex | ||
| HALF_LOCKED2 | global &audit_cmd_mutex.lock | ||
| HALF_LOCKED2 | global &cb_lock | ||
| HALF_LOCKED2 | global &crypto_cfg_mutex | ||
| HALF_LOCKED2 | global &dpll_lock | ||
| HALF_LOCKED2 | global &hwsim_phys_lock | ||
| HALF_LOCKED2 | global &net_dm_mutex | ||
| HALF_LOCKED2 | global &rtnl_mutex | ||
| HALF_LOCKED2 | global &rx_queue_mutex |
fs/namei.c path_connected() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | new_dentry->d_op->d_dname | 0,4096-ptr_max |
| PARAM_VALUE | 0 | new_dentry->d_op->d_iput | 0,4096-ptr_max |
| PARAM_VALUE | 0 | new_dentry->d_op->d_prune | 0,4096-ptr_max |
| PARAM_VALUE | 0 | new_dentry->d_op->d_real | 0,4096-ptr_max |
| DATA_SOURCE | 0 | new_dentry | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | new_dentry->__d_name.hash | 0-u32max[c] |
| UNITS | 0 | new_dentry | unit_jiffy |
| UNITS | 1 | old_dentry | unit_jiffy |
fs/overlayfs/super.c ovl_workdir_ok() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | new_dentry | $0 |
| DATA_SOURCE | 1 | old_dentry | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &fc->uapi_mutex | ||
| HALF_LOCKED2 | &sb->s_umount |
fs/overlayfs/super.c ovl_workdir_ok() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | new_dentry | $1 |
| DATA_SOURCE | 1 | old_dentry | $0 |
| PARAM_COMPARE | 0 | new_dentry | != $1 |
| PARAM_COMPARE | 0 | new_dentry | != $1 |
| PARAM_COMPARE | 1 | old_dentry | != $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &fc->uapi_mutex | ||
| HALF_LOCKED2 | &sb->s_umount |
fs/namespace.c __has_locked_children() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | old_dentry | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | new_dentry | unit_jiffy |
| UNITS | 1 | old_dentry | unit_jiffy |
| HALF_LOCKED2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/namespace.c collect_paths() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | new_dentry | unit_jiffy |
| LOCK2 | global &audit_cmd_mutex.lock | ||
| LOCK2 | global &namespace_sem | ||
| HALF_LOCKED2 | global &hwsim_phys_lock | ||
| HALF_LOCKED2 | global &rtnl_mutex | ||
| HALF_LOCKED2 | global &rx_queue_mutex | ||
| HALF_LOCKED2 | rcu_read |
fs/namespace.c copy_tree() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | old_dentry | 4096-ptr_max |
| PARAM_VALUE | 1 | old_dentry->d_op->d_iput | 0,170374395438985216,837750826476904448,5086081384299388928,8216155483032948736 |
| PARAM_VALUE | 1 | old_dentry->d_op->d_prune | 0,2225594340392566784,7225953709177749504 |
| PARAM_VALUE | 1 | old_dentry->d_op->d_real | 0,4509355519306412032 |
| PARAM_VALUE | 1 | old_dentry->d_sb | 4096-ptr_max |
| PARAM_VALUE | 1 | old_dentry->d_sb->s_mounts->mnt_pprev_for_sb | 4096-ptr_max |
| CAPPED_DATA | 1 | old_dentry | 1 |
| DATA_SOURCE | 1 | old_dentry | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | new_dentry | unit_jiffy |
| UNITS | 1 | old_dentry | unit_jiffy |
| HALF_LOCKED2 | global &namespace_sem |
fs/namespace.c do_set_group() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| UNITS | 0 | new_dentry | unit_jiffy |
| UNITS | 1 | old_dentry | unit_jiffy |
| LOCK2 | global &namespace_sem |
fs/namespace.c is_path_reachable() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | new_dentry | $1 [m] |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | new_dentry | unit_jiffy |
| HALF_LOCKED2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/smb/server/vfs_cache.c ksmbd_has_open_files() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | old_dentry | 4096-ptr_max |
| PARAM_VALUE | 1 | old_dentry->d_hash.pprev | 1-u64max |
| PARAM_VALUE | 1 | old_dentry->d_op->d_dname | 0,4096-ptr_max |
| PARAM_VALUE | 1 | old_dentry->d_op->d_iput | 0,4096-ptr_max |
| PARAM_VALUE | 1 | old_dentry->d_op->d_prune | 0,4096-ptr_max |
| PARAM_VALUE | 1 | old_dentry->d_op->d_real | 0,4096-ptr_max |
| PARAM_VALUE | 1 | old_dentry->d_parent | 4096-ptr_max |
| PARAM_VALUE | 1 | old_dentry->d_parent->d_inode | 4096-ptr_max |
| PARAM_VALUE | 1 | old_dentry->d_parent->d_inode->i_rwsem.first_waiter->handoff_set | 0-1 |
| PARAM_VALUE | 1 | old_dentry->d_parent->d_inode->i_rwsem.first_waiter->type | 0-1 |
| PARAM_VALUE | 1 | old_dentry->d_parent->d_inode->i_rwsem.osq.tail.counter | 0-s32max |
| PARAM_VALUE | 1 | old_dentry->d_sb->s_vfs_rename_mutex.dep_map->name | 0-255 |
| PARAM_VALUE | 1 | old_dentry->d_sb->s_vfs_rename_mutex.first_waiter->list.prev->next | 5159360019465732096 |
| PARAM_VALUE | 1 | old_dentry->d_sb->s_vfs_rename_mutex.first_waiter->list.prev->prev | 5159360019465732096 |
| PARAM_VALUE | 1 | old_dentry->d_sb->s_vfs_rename_mutex.osq.tail.counter | 0-s32max |
| CAPPED_DATA | 1 | old_dentry | 1 |
| CAPPED_DATA | 1 | old_dentry->d_parent | 1 |
| DATA_SOURCE | 1 | old_dentry | $0 |
| PARAM_COMPARE | 0 | new_dentry | != $1 |
| PARAM_COMPARE | 1 | old_dentry | != $0 |
| PARAM_COMPARE | 1 | old_dentry | != $0 |
| LOCK2 | global &global_ft.lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct ksmbd_file_table)->lock |
fs/pnode.c need_secondary() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH |
fs/gfs2/super.c gfs2_show_options() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | new_dentry | 4096-ptr_max |
| PARAM_VALUE | 0 | new_dentry->d_sb | 4096-ptr_max |
| PARAM_VALUE | 0 | new_dentry->d_sb->s_fs_info | 4096-ptr_max |
| PARAM_VALUE | 0 | new_dentry->d_sb->s_op->show_devname | 0,1010349334253707264,4405032975229669376,7670745387818385408,8380631456597626880 |
| DATA_SOURCE | 0 | new_dentry | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &s->lock | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/overlayfs/namei.c ovl_acceptable() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | new_dentry | 4096-ptr_max |
| PARAM_VALUE | 0 | new_dentry->d_hash.pprev | 1-u64max |
| DATA_SOURCE | 0 | new_dentry | $1 |
fs/ntfs/namei.c ntfs_rename() -> is_subdir()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPPED_DATA | 1 | old_dentry->d_inode | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | new_dentry | unit_jiffy |
| UNITS | 1 | old_dentry | unit_jiffy |
| HALF_LOCKED2 | &source->i_rwsem | ||
| HALF_LOCKED2 | &target->i_rwsem |