Defined in 1 files as a prototype:

Defined in 2 files as a macro:

Defined in 1 files as a function:

Referenced in 21 files:

Smatch caller information:

fs/ext4/move_extent.c ext4_double_down_write_data_sem() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
NOCHECK_CALL
HALF_LOCKED2 &first->i_mapping->invalidate_lock

fs/ext4/move_extent.c ext4_double_down_write_data_sem() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
NOCHECK_CALL
HALF_LOCKED2 &first->i_mapping->invalidate_lock

drivers/net/ethernet/mellanox/mlx5/core/fs_core.c nested_down_write_ref_node() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0-2
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &counter->lock
HALF_LOCKED2 &ct_priv->control_lock
HALF_LOCKED2 &dev->flow_db->lock
HALF_LOCKED2 &esw->fdb_table.offloads.indir->lock
HALF_LOCKED2 &esw->offloads.reps_lock
HALF_LOCKED2 &esw->offloads.termtbl_mutex
HALF_LOCKED2 &esw->state_lock
HALF_LOCKED2 &g->node.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->int_ports_lock
HALF_LOCKED2 &priv->macsec->lock
HALF_LOCKED2 &stats->lock
HALF_LOCKED2 global &rtnl_mutex

mm/mmap.c mmap_write_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem->count.counter 0
PARAM_VALUE 0 sem->first_waiter 0
PARAM_VALUE 0 sem->magic 4096-ptr_max
PARAM_VALUE 0 sem->osq.tail.counter 0
PARAM_VALUE 0 sem->owner.counter 0
PARAM_VALUE 1 subclass 1
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &oldmm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

fs/tracefs/inode.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dentry->d_inode->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_sb->s_vfs_rename_mutex
HALF_LOCKED2 &dir->d_inode->i_rwsem

fs/super.c alloc_super() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->count.counter 0
PARAM_VALUE 0 sem->first_waiter 0
PARAM_VALUE 0 sem->magic 4096-ptr_max
PARAM_VALUE 0 sem->osq.tail.counter 0
PARAM_VALUE 0 sem->owner.counter 0
PARAM_VALUE 1 subclass 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &cifs_mount_mutex

fs/configfs/dir.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1-2,4
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/inode.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 4
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode1->i_rwsem

security/apparmor/apparmorfs.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &parent->lock

fs/namei.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1-2,5
DATA_SOURCE 1 subclass $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &c1->d_sb->s_vfs_rename_mutex
HALF_LOCKED2 &p1->d_inode->i_rwsem
HALF_LOCKED2 &p2->d_inode->i_rwsem

mm/ptdump.c mmap_write_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 1 subclass 1
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mm->mmap_lock
HALF_LOCKED2 &m->lock
TYPE_LOCK (struct mm_struct)->mmap_lock

fs/fuse/dir.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &fc->killsb
TYPE_LOCK (struct fuse_conn)->killsb

drivers/md/dm-snap.c snapshot_resume() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
NOCHECK_CALL
LOCK2 &md->suspend_lock
LOCK2 &snap_src->lock
LOCK2 global &_origins_lock
HALF_LOCKED2 &origin_md->suspend_lock
TYPE_LOCK (struct dm_snapshot)->lock
TYPE_LOCK (struct mapped_device)->suspend_lock

fs/pstore/inode.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 _T->lock
HALF_LOCKED2 global &psinfo_lock

drivers/pci/hotplug/pciehp_hpc.c pciehp_reset_slot() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ext4/xattr.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 3
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

mm/filemap.c filemap_invalidate_lock_two() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mapping1->invalidate_lock

lib/test_maple_tree.c check_forking() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 410846273236574208
PARAM_VALUE 0 sem->count.counter 0
PARAM_VALUE 0 sem->first_waiter 0
PARAM_VALUE 0 sem->magic 4096-ptr_max
PARAM_VALUE 0 sem->osq.tail.counter 0
PARAM_VALUE 0 sem->owner.counter 0
PARAM_VALUE 1 subclass 1
NOCHECK_CALL
LOCK2 &mt_lock

fs/ocfs2/namei.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 4
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem

security/keys/key.c key_invalidate() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &ses->session_mutex
HALF_LOCKED2 global &key_construction_mutex

security/keys/key.c key_revoke() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &afs_key_lock

fs/btrfs/locking.c btrfs_tree_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0-7
DATA_SOURCE 1 subclass $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fs_info->cleaner_mutex
HALF_LOCKED2 &fs_info->qgroup_ioctl_lock
HALF_LOCKED2 &fs_info->subvol_sem

fs/jfs/inode.c jfs_get_block() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ip->i_rwsem

fs/jfs/inode.c jfs_truncate() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem

security/keys/keyring.c __key_move_lock() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
NOCHECK_CALL
LOCK2 &l_keyring->sem
TYPE_LOCK (struct key)->sem

security/keys/keyring.c __key_move_lock() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
NOCHECK_CALL
LOCK2 &u_keyring->sem
TYPE_LOCK (struct key)->sem

fs/jfs/jfs_mount.c jfs_mount_rw() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fc->uapi_mutex
HALF_LOCKED2 &sb->s_umount

fs/ocfs2/file.c ocfs2_remap_file_range() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode_out->i_rwsem

fs/xfs/xfs_inode.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 4
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &src->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/xfs/xfs_inode.c xfs_ilock() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0-15
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ls->ls_mutex
HALF_LOCKED2 &mp->m_growlock
HALF_LOCKED2 &pool->lock

fs/xfs/xfs_inode.c xfs_ilock() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0-15
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ls->ls_mutex
HALF_LOCKED2 &mp->m_growlock
HALF_LOCKED2 &pool->lock

fs/xfs/xfs_inode.c xfs_ilock() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0-255
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ls->ls_mutex
HALF_LOCKED2 &mp->m_growlock
HALF_LOCKED2 &pool->lock

fs/f2fs/inline.c f2fs_down_write_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sbi->cp_global_sem.internal_rwsem
HALF_LOCKED2 &sbi->cp_rwsem.internal_rwsem
TYPE_LOCK (struct f2fs_rwsem)->internal_rwsem

fs/ocfs2/refcounttree.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->count.counter 0
PARAM_VALUE 0 sem->first_waiter 0
PARAM_VALUE 0 sem->osq.tail.counter 0
PARAM_VALUE 0 sem->owner.counter 0
PARAM_VALUE 1 subclass 2
DATA_SOURCE 1 subclass $1
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/ntfs3/fsntfs.c mark_as_free_ex() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ntfs3/fsntfs.c ntfs_extend_mft() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &ni->file.run_lock
HALF_LOCKED2 &wnd->rw_lock
TYPE_LOCK (struct ntfs_inode)->file.run_lock

fs/ntfs3/fsntfs.c ntfs_look_for_free_space() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ni->ni_lock

fs/ntfs3/fsntfs.c ntfs_look_free_mft() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ni->file.run_lock
HALF_LOCKED2 &ni->ni_lock

fs/ntfs3/fsntfs.c ntfs_mark_rec_free() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &ni->base->ni_lock

fs/jfs/jfs_imap.c diNewIAG() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &imap->im_freelock
TYPE_LOCK (struct inomap)->im_freelock

fs/btrfs/reflink.c btrfs_double_mmap_lock() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode1->i_mmap_lock
TYPE_LOCK (struct btrfs_inode)->i_mmap_lock

fs/jfs/namei.c jfs_rename() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &source->i_rwsem
HALF_LOCKED2 &target->i_rwsem

fs/jfs/namei.c jfs_unlink() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &target->i_rwsem
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dentry->d_sb->s_vfs_rename_mutex
HALF_LOCKED2 &dip->i_rwsem
HALF_LOCKED2 &dir->d_inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/binfmt_misc.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 1
DATA_SOURCE 1 subclass $1
NOCHECK_CALL

fs/configfs/file.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 0
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/libfs.c inode_lock_nested() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 2
DATA_SOURCE 1 subclass $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/jfs/jfs_dmap.c dbAlloc() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &imap->im_freelock

fs/jfs/jfs_dmap.c dbAlloc() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &imap->im_freelock

fs/jfs/jfs_dmap.c dbAlloc() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &imap->im_freelock

fs/jfs/jfs_dmap.c dbDiscardAG() -> down_write_nested()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 1 subclass 2
CAPABLE 0 21
NOCHECK_CALL
LOCK2 &sb->s_umount
TYPE_LOCK (struct super_block)->s_umount