Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 10 files:

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