Home
last modified time | relevance | path

Searched refs:i_rwsem (Results 1 – 25 of 36) sorted by relevance

12

/linux/fs/netfs/
H A Dlocking.c69 __acquires(inode->i_rwsem) in netfs_start_io_read()
78 up_read(&inode->i_rwsem); in netfs_start_io_read()
84 up_write(&inode->i_rwsem); in netfs_start_io_read()
100 __releases(inode->i_rwsem) in netfs_end_io_read()
102 up_read(&inode->i_rwsem); in netfs_end_io_read()
114 __acquires(inode->i_rwsem) in netfs_start_io_write()
136 __releases(inode->i_rwsem) in netfs_end_io_write()
138 up_write(&inode->i_rwsem); in netfs_end_io_write()
179 __acquires(inode->i_rwsem) in netfs_start_io_direct()
189 up_read(&inode->i_rwsem); in netfs_start_io_direct()
[all …]
/linux/fs/ceph/
H A Dio.c56 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()
142 down_read(&inode->i_rwsem); in ceph_start_io_direct()
145 up_read(&inode->i_rwsem); in ceph_start_io_direct()
147 down_write(&inode->i_rwsem); in ceph_start_io_direct()
[all …]
/linux/fs/nfs/
H A Dio.c47 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/Documentation/filesystems/
H A Ddirectory-locking.rst7 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 Dlocking.rst94 ops i_rwsem(inode)
123 Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem
126 ->unlink() and ->rename() have ->i_rwsem exclusive on all non-directories
128 ->rename() has ->i_rwsem exclusive on any subdirectory that changes parent.
151 ops i_rwsem(inode)
276 ops folio locked i_rwsem invalidate_lock
565 ->iterate_shared() is called with i_rwsem held for reading, and with the
600 blocking changes through write(2) and similar operations inode->i_rwsem can be
H A Dpath-lookup.rst246 inode->i_rwsem
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.
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
450 takes ``i_rwsem``, rechecks the cache, and then asks the filesystem
484 ``i_rwsem`` to exclude other changes while they validate and then
503 not always, take ``i_rwsem``, depending on what it finds.
[all …]
H A Dgfs2-glocks.rst115 1. i_rwsem (if required)
/linux/fs/orangefs/
H A Dfile.c329 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/fs/xfs/scrub/
H A Dxfile.c71 lockdep_set_class(&inode->i_rwsem, &xfile_i_mutex_key); in xfile_create()
97 lockdep_set_class(&inode->i_rwsem, &inode->i_sb->s_type->i_mutex_key); in xfile_destroy()
/linux/fs/
H A Dreaddir.c55 up_read(&inode->i_rwsem); in wrap_directory_iterator()
56 down_write(&inode->i_rwsem); in wrap_directory_iterator()
69 downgrade_write(&inode->i_rwsem); in wrap_directory_iterator()
103 res = down_read_killable(&inode->i_rwsem); in iterate_dir()
H A Dinode.c198 init_rwsem(&inode->i_rwsem); in inode_init_always()
199 lockdep_set_class(&inode->i_rwsem, &sb->s_type->i_mutex_key); in inode_init_always()
1047 if (lockdep_match_class(&inode->i_rwsem, &type->i_mutex_key)) { in lockdep_annotate_inode_mutex_key()
1052 init_rwsem(&inode->i_rwsem); in lockdep_annotate_inode_mutex_key()
1053 lockdep_set_class(&inode->i_rwsem, in lockdep_annotate_inode_mutex_key()
H A Ddax.c1564 lockdep_assert_held_write(&iomi.inode->i_rwsem); in dax_iomap_rw()
1567 lockdep_assert_held(&iomi.inode->i_rwsem); in dax_iomap_rw()
/linux/fs/xfs/
H A Dxfs_inode.c190 down_write_nested(&VFS_I(ip)->i_rwsem, in xfs_ilock()
193 down_read_nested(&VFS_I(ip)->i_rwsem, in xfs_ilock()
233 if (!down_write_trylock(&VFS_I(ip)->i_rwsem)) in xfs_ilock_nowait()
236 if (!down_read_trylock(&VFS_I(ip)->i_rwsem)) in xfs_ilock_nowait()
264 up_write(&VFS_I(ip)->i_rwsem); in xfs_ilock_nowait()
266 up_read(&VFS_I(ip)->i_rwsem); in xfs_ilock_nowait()
291 up_write(&VFS_I(ip)->i_rwsem); in xfs_iunlock()
293 up_read(&VFS_I(ip)->i_rwsem); in xfs_iunlock()
326 downgrade_write(&VFS_I(ip)->i_rwsem); in xfs_ilock_demote()
351 rwsem_assert_held(&VFS_I(ip)->i_rwsem); in xfs_assert_ilocked()
[all …]
H A Dxfs_buf_mem.c73 lockdep_set_class(&inode->i_rwsem, &xmbuf_i_mutex_key); in xmbuf_alloc()
H A Dxfs_iops.c1285 lockdep_set_class(&inode->i_rwsem, in xfs_setup_inode()
/linux/include/linux/
H A Dfs.h678 struct rw_semaphore i_rwsem; member
791 down_write(&inode->i_rwsem); in inode_lock()
796 up_write(&inode->i_rwsem); in inode_unlock()
801 down_read(&inode->i_rwsem); in inode_lock_shared()
806 up_read(&inode->i_rwsem); in inode_unlock_shared()
811 return down_write_trylock(&inode->i_rwsem); in inode_trylock()
816 return down_read_trylock(&inode->i_rwsem); in inode_trylock_shared()
821 return rwsem_is_locked(&inode->i_rwsem); in inode_is_locked()
826 down_write_nested(&inode->i_rwsem, subclass); in inode_lock_nested()
831 down_read_nested(&inode->i_rwsem, subclas in inode_lock_shared_nested()
[all...]
/linux/fs/configfs/
H A Dinode.c134 lockdep_set_class(&inode->i_rwsem, in configfs_set_inode_lock_class()
/linux/fs/ext4/
H A Dfile.c313 lockdep_assert_held_write(&inode->i_rwsem); in ext4_handle_inode_extension()
339 lockdep_assert_held_write(&inode->i_rwsem); in ext4_inode_extension_cleanup()
/linux/lib/
H A Dtest_lockup.c548 lock_rwsem_ptr = (unsigned long)&test_inode->i_rwsem; in test_lockup_init()
/linux/fs/overlayfs/
H A Dinode.c831 lockdep_set_class(&inode->i_rwsem, &ovl_i_mutex_dir_key[depth]); in ovl_lockdep_annotate_inode_mutex_key()
833 lockdep_set_class(&inode->i_rwsem, &ovl_i_mutex_key[depth]); in ovl_lockdep_annotate_inode_mutex_key()
H A Dreaddir.c280 err = down_write_killable(&dir->d_inode->i_rwsem); in ovl_check_whiteouts()
/linux/fs/afs/
H A Daddr_prefs.c392 lockdep_is_held(&file_inode(file)->i_rwsem)); in afs_proc_addr_prefs_write()
/linux/fs/bcachefs/
H A Dfs.c504 lockdep_assert_held(&inode->v.i_rwsem); in bch2_link()
877 lockdep_assert_held(&inode->v.i_rwsem); in bch2_setattr()
H A Dfs-io-buffered.c762 lockdep_assert_held(&inode->v.i_rwsem); in bch2_write_end()
/linux/fs/ocfs2/
H A Dinode.c245 lockdep_set_class(&inode->i_rwsem, in ocfs2_init_locked_inode()

12