| /Linux-v5.15/fs/ceph/ |
| D | io.c | 24 lockdep_assert_held_write(&inode->i_rwsem); in ceph_block_o_direct() 56 down_read(&inode->i_rwsem); in ceph_start_io_read() 59 up_read(&inode->i_rwsem); in ceph_start_io_read() 61 down_write(&inode->i_rwsem); in ceph_start_io_read() 63 downgrade_write(&inode->i_rwsem); in ceph_start_io_read() 76 up_read(&inode->i_rwsem); in ceph_end_io_read() 89 down_write(&inode->i_rwsem); in ceph_start_io_write() 103 up_write(&inode->i_rwsem); in ceph_end_io_write() 109 lockdep_assert_held_write(&inode->i_rwsem); in ceph_block_buffered() 142 down_read(&inode->i_rwsem); in ceph_start_io_direct() [all …]
|
| /Linux-v5.15/fs/nfs/ |
| D | io.c | 47 down_read(&inode->i_rwsem); in nfs_start_io_read() 50 up_read(&inode->i_rwsem); in nfs_start_io_read() 52 down_write(&inode->i_rwsem); in nfs_start_io_read() 54 downgrade_write(&inode->i_rwsem); in nfs_start_io_read() 67 up_read(&inode->i_rwsem); in nfs_end_io_read() 80 down_write(&inode->i_rwsem); in nfs_start_io_write() 94 up_write(&inode->i_rwsem); in nfs_end_io_write() 127 down_read(&inode->i_rwsem); in nfs_start_io_direct() 130 up_read(&inode->i_rwsem); in nfs_start_io_direct() 132 down_write(&inode->i_rwsem); in nfs_start_io_direct() [all …]
|
| /Linux-v5.15/Documentation/filesystems/ |
| D | directory-locking.rst | 7 kinds of locks - per-inode (->i_rwsem) and per-filesystem 10 When taking the i_rwsem on multiple non-directory objects, we 58 All ->i_rwsem are taken exclusive. Again, we might get away with locking 94 Thus all processes are blocked on ->i_rwsem.
|
| D | locking.rst | 91 ops i_rwsem(inode) 118 Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem 143 ops i_rwsem(inode) 275 ops PageLocked(page) i_rwsem invalidate_lock 557 ->iterate() is called with i_rwsem exclusive. 559 ->iterate_shared() is called with i_rwsem at least shared. 593 blocking changes through write(2) and similar operations inode->i_rwsem can be
|
| D | path-lookup.rst | 246 inode->i_rwsem 249 ``i_rwsem`` is a read/write semaphore that serializes all changes to a particular 256 This has a complementary role to that of ``d_lock``: ``i_rwsem`` on a 259 dcache hold ``i_rwsem`` on the relevant directory inode and briefly take 262 memory pressure. This uses ``d_lock``, but ``i_rwsem`` plays no role. 268 falls back to ``lookup_slow()`` which takes a shared lock on ``i_rwsem``, checks again that 274 sometimes need to take an exclusive lock on ``i_rwsem`` before performing the last lookup so 276 to take, or not take, ``i_rwsem`` is one of the 280 name that is not yet in the dcache - the shared lock on ``i_rwsem`` will 287 ``i_rwsem``, a thread must call ``d_alloc_parallel()``. This allocates a [all …]
|
| D | gfs2-glocks.rst | 116 1. i_rwsem (if required)
|
| D | vfs.rst | 598 (in this case with i_rwsem locked exclusive). If unset, then 604 i_rwsem exclusive. If unset, then fall back to f_op->ioctl().
|
| /Linux-v5.15/fs/xfs/ |
| D | xfs_inode.c | 184 down_write_nested(&VFS_I(ip)->i_rwsem, in xfs_ilock() 187 down_read_nested(&VFS_I(ip)->i_rwsem, in xfs_ilock() 238 if (!down_write_trylock(&VFS_I(ip)->i_rwsem)) in xfs_ilock_nowait() 241 if (!down_read_trylock(&VFS_I(ip)->i_rwsem)) in xfs_ilock_nowait() 269 up_write(&VFS_I(ip)->i_rwsem); in xfs_ilock_nowait() 271 up_read(&VFS_I(ip)->i_rwsem); in xfs_ilock_nowait() 308 up_write(&VFS_I(ip)->i_rwsem); in xfs_iunlock() 310 up_read(&VFS_I(ip)->i_rwsem); in xfs_iunlock() 343 downgrade_write(&VFS_I(ip)->i_rwsem); in xfs_ilock_demote() 381 return __xfs_rwsem_islocked(&VFS_I(ip)->i_rwsem, in xfs_isilocked() [all …]
|
| D | xfs_iops.c | 1363 lockdep_set_class(&inode->i_rwsem, in xfs_setup_inode()
|
| D | xfs_icache.c | 368 ASSERT(!rwsem_is_locked(&inode->i_rwsem)); in xfs_iget_recycle()
|
| D | xfs_super.c | 636 ASSERT(!rwsem_is_locked(&inode->i_rwsem)); in xfs_fs_destroy_inode()
|
| /Linux-v5.15/fs/orangefs/ |
| D | file.c | 329 down_read(&file_inode(iocb->ki_filp)->i_rwsem); in orangefs_file_read_iter() 336 up_read(&file_inode(iocb->ki_filp)->i_rwsem); in orangefs_file_read_iter()
|
| /Linux-v5.15/include/linux/ |
| D | fs.h | 673 struct rw_semaphore i_rwsem; member 786 down_write(&inode->i_rwsem); in inode_lock() 791 up_write(&inode->i_rwsem); in inode_unlock() 796 down_read(&inode->i_rwsem); in inode_lock_shared() 801 up_read(&inode->i_rwsem); in inode_unlock_shared() 806 return down_write_trylock(&inode->i_rwsem); in inode_trylock() 811 return down_read_trylock(&inode->i_rwsem); in inode_trylock_shared() 816 return rwsem_is_locked(&inode->i_rwsem); in inode_is_locked() 821 down_write_nested(&inode->i_rwsem, subclass); in inode_lock_nested() 826 down_read_nested(&inode->i_rwsem, subclass); in inode_lock_shared_nested()
|
| /Linux-v5.15/fs/ |
| D | inode.c | 175 init_rwsem(&inode->i_rwsem); in inode_init_always() 176 lockdep_set_class(&inode->i_rwsem, &sb->s_type->i_mutex_key); in inode_init_always() 981 if (lockdep_match_class(&inode->i_rwsem, &type->i_mutex_key)) { in lockdep_annotate_inode_mutex_key() 986 init_rwsem(&inode->i_rwsem); in lockdep_annotate_inode_mutex_key() 987 lockdep_set_class(&inode->i_rwsem, in lockdep_annotate_inode_mutex_key()
|
| D | readdir.c | 55 res = down_read_killable(&inode->i_rwsem); in iterate_dir() 57 res = down_write_killable(&inode->i_rwsem); in iterate_dir()
|
| D | dax.c | 1282 lockdep_assert_held_write(&iomi.inode->i_rwsem); in dax_iomap_rw() 1285 lockdep_assert_held(&iomi.inode->i_rwsem); in dax_iomap_rw()
|
| /Linux-v5.15/fs/configfs/ |
| D | inode.c | 135 lockdep_set_class(&inode->i_rwsem, in configfs_set_inode_lock_class()
|
| /Linux-v5.15/fs/overlayfs/ |
| D | inode.c | 718 lockdep_set_class(&inode->i_rwsem, &ovl_i_mutex_dir_key[depth]); in ovl_lockdep_annotate_inode_mutex_key() 720 lockdep_set_class(&inode->i_rwsem, &ovl_i_mutex_key[depth]); in ovl_lockdep_annotate_inode_mutex_key()
|
| D | readdir.c | 276 err = down_write_killable(&dir->d_inode->i_rwsem); in ovl_check_whiteouts()
|
| /Linux-v5.15/lib/ |
| D | test_lockup.c | 543 lock_rwsem_ptr = (unsigned long)&test_inode->i_rwsem; in test_lockup_init()
|
| /Linux-v5.15/drivers/staging/android/ |
| D | ashmem.c | 422 lockdep_set_class(&inode->i_rwsem, &backing_shmem_inode_class); in ashmem_mmap()
|
| /Linux-v5.15/fs/ocfs2/ |
| D | inode.c | 245 lockdep_set_class(&inode->i_rwsem, in ocfs2_init_locked_inode()
|
| /Linux-v5.15/fs/btrfs/ |
| D | delayed-inode.c | 1570 downgrade_write(&inode->i_rwsem); in btrfs_readdir_put_delayed_items()
|
| D | ioctl.c | 904 error = down_write_killable_nested(&dir->i_rwsem, I_MUTEX_PARENT); in btrfs_mksubvol() 3038 err = down_write_killable_nested(&dir->i_rwsem, I_MUTEX_PARENT); in btrfs_ioctl_snap_destroy()
|
| /Linux-v5.15/fs/gfs2/ |
| D | ops_fstype.c | 911 lockdep_set_class(&sdp->sd_quota_inode->i_rwsem, in init_inodes()
|