Documented in 1 files:
Defined in 1 files as a function:
Referenced in 14 files:
- fs/afs/file.c, line 503
- fs/afs/vl_alias.c, line 150
- fs/dcache.c
- fs/exec.c, line 1620
- fs/fs_struct.c
- fs/mount.h, line 169
- fs/namei.c
- fs/namespace.c
- fs/ufs/balloc.c, line 437
- fs/ufs/inode.c
- include/linux/fs_struct.h
- include/linux/seqlock.h, line 1180
- kernel/fork.c
- kernel/nstree.c, line 19
Smatch caller information:
kernel/fork.c copy_fs() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
kernel/fork.c copy_fs() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
security/apparmor/path.c get_fs_root() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/afs/file.c afs_drop_open_mmap() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &vnode->cb_lock.lock | ||
| LOCK2 | &vnode->volume->open_mmaps_lock | ||
| TYPE_LOCK | (struct afs_volume)->open_mmaps_lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/proc/base.c get_fs_pwd() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| LOCK2 | &task->alloc_lock | ||
| LOCK2 | &task->signal->exec_update_lock | ||
| TYPE_LOCK | (struct seqlock)->lock | ||
| TYPE_LOCK | (struct signal_struct)->exec_update_lock | ||
| TYPE_LOCK | (struct task_struct)->alloc_lock |
fs/proc/base.c get_fs_root() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| LOCK2 | &task->alloc_lock | ||
| LOCK2 | &task->signal->exec_update_lock | ||
| TYPE_LOCK | (struct seqlock)->lock | ||
| TYPE_LOCK | (struct signal_struct)->exec_update_lock | ||
| TYPE_LOCK | (struct task_struct)->alloc_lock |
fs/cachefiles/daemon.c get_fs_pwd() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &cache->daemon_mutex | ||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct cachefiles_cache)->daemon_mutex | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namei.c follow_up() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namei.c follow_up() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namei.c get_fs_pwd() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namei.c get_fs_root() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
kernel/auditsc.c get_fs_pwd() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
net/rxrpc/conn_service.c done_seqretry() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| DATA_SOURCE | 0 | sl | $0 |
| NOCHECK_CALL | |||
| LOCK2 | rcu_read |
kernel/nstree.c class_ns_tree_locked_reader_destructor() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 3539976965868326912 |
| NOCHECK_CALL | |||
| LOCK2 | global &ns_tree_lock.lock |
fs/d_path.c done_seqretry() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952,6999784468772192256 |
| DATA_SOURCE | 0 | sl | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | rcu_read |
fs/ufs/balloc.c ufs_new_fragments() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/namespace.c __unlock_mount() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namespace.c attach_recursive_mnt() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namespace.c class_mount_locked_reader_destructor() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem |
fs/namespace.c get_fs_root() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| HALF_LOCKED2 | global &namespace_sem | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namespace.c get_mountpoint() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namespace.c get_mountpoint() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/namespace.c path_overmounted() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &dentry->d_inode->i_rwsem | ||
| LOCK2 | global &mount_lock.lock | ||
| LOCK2 | global &namespace_sem | ||
| TYPE_LOCK | (struct inode)->i_rwsem | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/pnode.c class_mount_locked_reader_destructor() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| RX_PATH | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock |
fs/proc_namespace.c get_fs_root() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| LOCK2 | &task->alloc_lock | ||
| TYPE_LOCK | (struct seqlock)->lock | ||
| TYPE_LOCK | (struct task_struct)->alloc_lock |
fs/fhandle.c get_fs_pwd() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/ufs/inode.c ufs_getfrag_block() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ufs/inode.c ufs_getfrag_block() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ufs/inode.c ufs_truncate_blocks() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ufsi->meta_lock.lock | ||
| LOCK2 | &ufsi->truncate_mutex | ||
| TYPE_LOCK | (struct seqlock)->lock | ||
| TYPE_LOCK | (struct ufs_inode_info)->truncate_mutex |
fs/fs_struct.c copy_fs_struct() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &old->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/fs_struct.c exit_fs() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| LOCK2 | &tsk->alloc_lock | ||
| HALF_LOCKED2 | global &system_transition_mutex | ||
| TYPE_LOCK | (struct seqlock)->lock | ||
| TYPE_LOCK | (struct task_struct)->alloc_lock |
fs/fs_struct.c init_userspace_fs() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL |
fs/fs_struct.c switch_fs_struct() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &_T->lock->alloc_lock | ||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/fs_struct.c unshare_fs_struct() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/afs/vl_alias.c afs_query_for_alias_one() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &net->cells_alias_lock | ||
| LOCK2 | &p->volume_lock.lock | ||
| HALF_LOCKED2 | &fc->uapi_mutex | ||
| TYPE_LOCK | (struct afs_net)->cells_alias_lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/exec.c check_unsafe_exec() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL | |||
| LOCK2 | &p->fs->seq.lock | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/dcache.c class_mount_locked_reader_destructor() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 4370652378825981952 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | &sbi->fs_lock | ||
| HALF_LOCKED2 | &sbi->wq_mutex |
fs/dcache.c d_set_mounted() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 6999784468772192256 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &rename_lock.lock | ||
| HALF_LOCKED2 | &dentry->d_inode->i_rwsem | ||
| HALF_LOCKED2 | global &namespace_sem | ||
| TYPE_LOCK | (struct seqlock)->lock |
fs/dcache.c done_seqretry() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 6999784468772192256 |
| DATA_SOURCE | 0 | sl | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &dentry->d_lockref.lock | ||
| HALF_LOCKED2 | global &mount_lock.lock | ||
| HALF_LOCKED2 | rcu_read |
fs/dcache.c is_subdir() -> read_sequnlock_excl()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | sl | 6999784468772192256 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &rename_lock.lock | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | global &audit_cmd_mutex.lock | ||
| HALF_LOCKED2 | global &global_ft.lock | ||
| HALF_LOCKED2 | global &namespace_sem | ||
| HALF_LOCKED2 | global &nfsd_mutex | ||
| TYPE_LOCK | (struct seqlock)->lock |