| /linux/fs/netfs/ |
| H A D | locking.c | 62 __acquires(inode->i_rwsem) in netfs_start_io_read() 67 if (down_read_interruptible(&inode->i_rwsem) < 0) in netfs_start_io_read() 71 up_read(&inode->i_rwsem); in netfs_start_io_read() 74 if (down_write_killable(&inode->i_rwsem) < 0) in netfs_start_io_read() 77 up_write(&inode->i_rwsem); in netfs_start_io_read() 80 downgrade_write(&inode->i_rwsem); in netfs_start_io_read() 93 __releases(inode->i_rwsem) in netfs_end_io_read() 95 up_read(&inode->i_rwsem); in netfs_end_io_read() 107 __acquires(inode->i_rwsem) in netfs_start_io_write() 111 if (down_write_killable(&inode->i_rwsem) < 0) in netfs_start_io_write() [all …]
|
| /linux/fs/ceph/ |
| H A D | io.c | 26 lockdep_assert_held_write(&inode->i_rwsem); in ceph_block_o_direct() 66 err = down_read_killable(&inode->i_rwsem); in ceph_start_io_read() 77 up_read(&inode->i_rwsem); in ceph_start_io_read() 80 err = down_write_killable(&inode->i_rwsem); in ceph_start_io_read() 85 downgrade_write(&inode->i_rwsem); in ceph_start_io_read() 100 up_read(&inode->i_rwsem); in ceph_end_io_read() 112 int err = down_write_killable(&inode->i_rwsem); in ceph_start_io_write() 128 up_write(&inode->i_rwsem); in ceph_end_io_write() 136 lockdep_assert_held_write(&inode->i_rwsem); in ceph_block_buffered() 178 err = down_read_killable(&inode->i_rwsem); in ceph_start_io_direct() [all …]
|
| /linux/Documentation/filesystems/ |
| H A 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 140 * rank ->i_rwsem of non-directories on given filesystem in inode pointer 142 * put ->i_rwsem of all directories on a filesystem at the same rank, 143 lower than ->i_rwsem of any non-directory on the same filesystem. 144 * put ->s_vfs_rename_mutex at rank lower than that of any ->i_rwsem 152 2. ->i_rwsem of directories on that NFS filesystem, same rank for all 153 3. ->i_rwsem of non-directories on that filesystem, in order of 156 5. ->i_rwsem of directories on the local filesystem, same rank for all 157 6. ->i_rwsem of non-directories on local filesystem, in order of [all …]
|
| H A D | locking.rst | 101 ops i_rwsem(inode) 131 Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem 134 ->unlink() and ->rename() have ->i_rwsem exclusive on all non-directories 136 ->rename() has ->i_rwsem exclusive on any subdirectory that changes parent. 159 ops i_rwsem(inode) 274 ops folio locked i_rwsem invalidate_lock 500 ->iterate_shared() is called with i_rwsem held for reading, and with the 535 blocking changes through write(2) and similar operations inode->i_rwsem can be
|
| H A D | vfs.rst | 625 (in this case with i_rwsem locked exclusive). If unset, then 631 i_rwsem exclusive. If unset, then fall back to f_op->ioctl(). 693 Removing pages from an address_space requires holding the inode's i_rwsem
|
| /linux/fs/orangefs/ |
| H A 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() 349 down_read(&inode->i_rwsem); in orangefs_file_splice_read() 356 up_read(&inode->i_rwsem); in orangefs_file_splice_read()
|
| /linux/Documentation/filesystems/iomap/ |
| H A D | operations.rst | 104 ``i_rwsem`` or ``invalidate_lock`` and updates mapping information. 235 Callers commonly take ``i_rwsem`` in either shared or exclusive mode 278 Callers typically hold ``i_rwsem`` and ``invalidate_lock`` in exclusive 289 Callers typically hold ``i_rwsem`` and ``invalidate_lock`` in exclusive 302 Callers typically hold ``i_rwsem`` and ``invalidate_lock`` in exclusive 316 It does not lock ``i_rwsem`` or ``invalidate_lock``. 534 Callers commonly hold ``i_rwsem`` in shared mode before calling this 588 Callers commonly hold ``i_rwsem`` in shared or exclusive mode before 652 Callers commonly hold ``i_rwsem`` in shared mode before calling this 674 Callers commonly hold ``i_rwsem`` in exclusive mode before calling this [all …]
|
| /linux/fs/xfs/scrub/ |
| H A D | xfile.c | 72 lockdep_set_class(&inode->i_rwsem, &xfile_i_mutex_key); in xfile_create() 98 lockdep_set_class(&inode->i_rwsem, &inode->i_sb->s_type->i_mutex_key); in xfile_destroy()
|
| /linux/fs/xfs/ |
| H A D | xfs_inode.c | 149 down_write_nested(&VFS_I(ip)->i_rwsem, in xfs_ilock() 152 down_read_nested(&VFS_I(ip)->i_rwsem, in xfs_ilock() 192 if (!down_write_trylock(&VFS_I(ip)->i_rwsem)) in xfs_ilock_nowait() 195 if (!down_read_trylock(&VFS_I(ip)->i_rwsem)) in xfs_ilock_nowait() 223 up_write(&VFS_I(ip)->i_rwsem); in xfs_ilock_nowait() 225 up_read(&VFS_I(ip)->i_rwsem); in xfs_ilock_nowait() 250 up_write(&VFS_I(ip)->i_rwsem); in xfs_iunlock() 252 up_read(&VFS_I(ip)->i_rwsem); in xfs_iunlock() 285 downgrade_write(&VFS_I(ip)->i_rwsem); in xfs_ilock_demote() 310 rwsem_assert_held(&VFS_I(ip)->i_rwsem); in xfs_assert_ilocked() [all …]
|
| H A D | xfs_iops.c | 1451 lockdep_set_class(&inode->i_rwsem, in xfs_setup_inode()
|
| H A D | xfs_icache.c | 368 ASSERT(!rwsem_is_locked(&inode->i_rwsem)); in xfs_iget_recycle()
|
| H A D | xfs_super.c | 764 ASSERT(!rwsem_is_locked(&inode->i_rwsem)); in xfs_fs_destroy_inode()
|
| /linux/include/linux/ |
| H A D | fs.h | 816 struct rw_semaphore i_rwsem; member 1024 down_write(&inode->i_rwsem); in inode_lock() 1029 return down_write_killable(&inode->i_rwsem); in inode_lock_killable() 1034 up_write(&inode->i_rwsem); in inode_unlock() 1039 down_read(&inode->i_rwsem); in inode_lock_shared() 1044 return down_read_killable(&inode->i_rwsem); in inode_lock_shared_killable() 1049 up_read(&inode->i_rwsem); in inode_unlock_shared() 1054 return down_write_trylock(&inode->i_rwsem); in inode_trylock() 1059 return down_read_trylock(&inode->i_rwsem); in inode_trylock_shared() 1064 return rwsem_is_locked(&inode->i_rwsem); in inode_is_locked() [all …]
|
| /linux/Documentation/translations/zh_CN/filesystems/ |
| H A D | gfs2-glocks.rst | 111 1. i_rwsem(如需要)
|
| /linux/fs/ext4/ |
| H A D | file.c | 368 lockdep_assert_held_write(&inode->i_rwsem); in ext4_handle_inode_extension() 394 lockdep_assert_held_write(&inode->i_rwsem); in ext4_inode_extension_cleanup()
|
| H A D | xattr.c | 122 lockdep_set_subclass(&ea_inode->i_rwsem, 1); in ext4_xattr_inode_set_class()
|
| /linux/lib/ |
| H A D | test_lockup.c | 548 lock_rwsem_ptr = (unsigned long)&test_inode->i_rwsem; in test_lockup_init()
|
| /linux/fs/btrfs/ |
| H A D | btrfs_inode.h | 489 lockdep_assert_held(&inode->vfs_inode.i_rwsem); in btrfs_assert_inode_locked()
|
| H A D | ioctl.c | 4605 btrfs_lockdep_inode_acquire(inode, i_rwsem); in btrfs_uring_read_finished() 4721 btrfs_lockdep_inode_release(inode, i_rwsem); in btrfs_uring_read_extent() 5308 ret = down_read_interruptible(&vfs_inode->i_rwsem); in btrfs_ioctl_get_csums() 5532 up_read(&vfs_inode->i_rwsem); in btrfs_ioctl_get_csums()
|
| H A D | delayed-inode.c | 1765 downgrade_write(&inode->vfs_inode.i_rwsem); in btrfs_readdir_put_delayed_items()
|
| /linux/fs/overlayfs/ |
| H A D | inode.c | 834 lockdep_set_class(&inode->i_rwsem, &ovl_i_mutex_dir_key[depth]); in ovl_lockdep_annotate_inode_mutex_key() 836 lockdep_set_class(&inode->i_rwsem, &ovl_i_mutex_key[depth]); in ovl_lockdep_annotate_inode_mutex_key()
|
| /linux/fs/afs/ |
| H A D | addr_prefs.c | 392 lockdep_is_held(&file_inode(file)->i_rwsem)); in afs_proc_addr_prefs_write()
|
| /linux/fs/ |
| H A D | dax.c | 1766 lockdep_assert_held_write(&iomi.inode->i_rwsem); in dax_iomap_rw() 1769 lockdep_assert_held(&iomi.inode->i_rwsem); in dax_iomap_rw()
|
| H A D | namei.c | 2913 int ret = down_write_killable_nested(&dir->i_rwsem, in __start_dirop()
|
| /linux/fs/smb/client/ |
| H A D | inode.c | 3084 lockdep_assert_held_write(&inode->i_rwsem);
|