/linux/drivers/gpu/drm/i915/gt/ |
H A D | intel_tlb.c | 137 mutex_lock(>->tlb.invalidate_lock); in intel_gt_invalidate_tlb_full() 156 mutex_unlock(>->tlb.invalidate_lock); in intel_gt_invalidate_tlb_full() 162 mutex_init(>->tlb.invalidate_lock); in intel_gt_init_tlb() 163 seqcount_mutex_init(>->tlb.seqno, >->tlb.invalidate_lock); in intel_gt_init_tlb() 168 mutex_destroy(>->tlb.invalidate_lock); in intel_gt_fini_tlb()
|
/linux/arch/powerpc/sysdev/ |
H A D | dart_iommu.c | 56 static DEFINE_SPINLOCK(invalidate_lock); 65 spin_lock_irqsave(&invalidate_lock, flags); in dart_tlb_invalidate_all() 99 spin_unlock_irqrestore(&invalidate_lock, flags); in dart_tlb_invalidate_all() 108 spin_lock_irqsave(&invalidate_lock, flags); in dart_tlb_invalidate_one() 131 spin_unlock_irqrestore(&invalidate_lock, flags); in dart_tlb_invalidate_one()
|
/linux/fs/xfs/ |
H A D | xfs_inode.c | 111 * multi-reader locks: invalidate_lock and the i_lock. This routine allows 119 * i_rwsem -> invalidate_lock -> page_lock -> i_ilock 124 * mmap_lock -> invalidate_lock -> page_lock 127 * invalidate_lock over syscall based read(2)/write(2) based IO. These IO paths 134 * take both the i_rwsem and the invalidate_lock. These locks should *only* be 157 down_write_nested(&VFS_I(ip)->i_mapping->invalidate_lock, in xfs_ilock() 160 down_read_nested(&VFS_I(ip)->i_mapping->invalidate_lock, in xfs_ilock() 200 if (!down_write_trylock(&VFS_I(ip)->i_mapping->invalidate_lock)) in xfs_ilock_nowait() 203 if (!down_read_trylock(&VFS_I(ip)->i_mapping->invalidate_lock)) in xfs_ilock_nowait() 218 up_write(&VFS_I(ip)->i_mapping->invalidate_lock); in xfs_ilock_nowait() [all...] |
H A D | xfs_iomap.c | 1987 /* For zeroing operations the callers already hold invalidate_lock. */ in xfs_buffered_write_iomap_end() 1989 rwsem_assert_held_write(&inode->i_mapping->invalidate_lock); in xfs_buffered_write_iomap_end()
|
/linux/Documentation/filesystems/ |
H A D | locking.rst | 280 ops folio locked i_rwsem invalidate_lock 333 invalidate_lock before invalidating page cache in truncate / hole punch 548 cache contents from the disk. Since VFS acquires mapping->invalidate_lock in 550 readahead paths), the fallocate implementation must take the invalidate_lock to 557 operation, the filesystem must take mapping->invalidate_lock to coordinate 623 truncated and/or invalidated, then the filesystem must lock invalidate_lock, 624 then ensure the page is not already truncated (invalidate_lock will block 648 mapping->invalidate_lock is suitable for proper serialization. If the page has
|
H A D | vfs.rst | 763 inode's i_mapping->invalidate_lock exclusively.
|
/linux/drivers/gpu/drm/amd/amdgpu/ |
H A D | gmc_v12_0.c | 213 spin_lock(&adev->gmc.invalidate_lock); in gmc_v12_0_flush_vm_hub() 272 spin_unlock(&adev->gmc.invalidate_lock); in gmc_v12_0_flush_vm_hub() 734 spin_lock_init(&adev->gmc.invalidate_lock); in gmc_v12_0_sw_init()
|
H A D | gmc_v11_0.c | 244 spin_lock(&adev->gmc.invalidate_lock); in gmc_v11_0_flush_gpu_tlb() 295 spin_unlock(&adev->gmc.invalidate_lock); in gmc_v11_0_flush_gpu_tlb() 739 spin_lock_init(&adev->gmc.invalidate_lock); in gmc_v11_0_sw_init()
|
H A D | gmc_v10_0.c | 283 spin_lock(&adev->gmc.invalidate_lock); in gmc_v10_0_flush_gpu_tlb() 329 spin_unlock(&adev->gmc.invalidate_lock); in gmc_v10_0_flush_gpu_tlb() 777 spin_lock_init(&adev->gmc.invalidate_lock); in gmc_v10_0_sw_init()
|
H A D | amdgpu_gmc.h | 285 spinlock_t invalidate_lock; member
|
H A D | gmc_v9_0.c | 868 spin_lock(&adev->gmc.invalidate_lock); in gmc_v9_0_flush_gpu_tlb() 930 spin_unlock(&adev->gmc.invalidate_lock); in gmc_v9_0_flush_gpu_tlb() 1857 spin_lock_init(&adev->gmc.invalidate_lock); in gmc_v9_0_sw_init()
|
/linux/Documentation/filesystems/iomap/ |
H A D | operations.rst | 104 ``i_rwsem`` or ``invalidate_lock`` and updates mapping information. 202 Callers commonly take the mmap ``invalidate_lock`` in shared or 218 It takes the ``invalidate_lock``. 235 Callers typically hold ``i_rwsem`` and ``invalidate_lock`` in exclusive 246 Callers typically hold ``i_rwsem`` and ``invalidate_lock`` in exclusive 259 Callers typically hold ``i_rwsem`` and ``invalidate_lock`` in exclusive 273 It does not lock ``i_rwsem`` or ``invalidate_lock``.
|
H A D | design.rst | 117 * ``invalidate_lock``: The pagecache ``struct address_space``
|
/linux/include/linux/ |
H A D | fs.h | 487 * @invalidate_lock: Guards coherency between page cache contents and 508 struct rw_semaphore invalidate_lock; member 924 down_write(&mapping->invalidate_lock); in filemap_invalidate_lock() 929 up_write(&mapping->invalidate_lock); in filemap_invalidate_unlock() 934 down_read(&mapping->invalidate_lock); in filemap_invalidate_lock_shared() 940 return down_read_trylock(&mapping->invalidate_lock); in filemap_invalidate_trylock_shared() 946 up_read(&mapping->invalidate_lock); in filemap_invalidate_unlock_shared()
|
/linux/mm/ |
H A D | filemap.c | 88 * ->invalidate_lock (acquired by fs in truncate path) 97 * ->invalidate_lock (filemap_fault) 1013 * filemap_invalidate_lock_two - lock invalidate_lock for two mappings 1015 * Lock exclusively invalidate_lock of any passed mapping that is not NULL. 1026 down_write(&mapping1->invalidate_lock); in filemap_invalidate_lock_two() 1028 down_write_nested(&mapping2->invalidate_lock, 1); in filemap_invalidate_lock_two() 1033 * filemap_invalidate_unlock_two - unlock invalidate_lock for two mappings 1035 * Unlock exclusive invalidate_lock of any passed mapping that is not NULL. 1044 up_write(&mapping1->invalidate_lock); in filemap_invalidate_unlock_two() 1046 up_write(&mapping2->invalidate_lock); in filemap_invalidate_unlock_two() [all...] |
/linux/Documentation/mm/ |
H A D | process_addrs.rst | 420 mapping->invalidate_lock (in filemap_fault) 450 ->invalidate_lock (acquired by fs in truncate path) 459 ->invalidate_lock (filemap_fault)
|
/linux/fs/ext2/ |
H A D | inode.c | 1171 /* mapping->invalidate_lock must be held when calling this function */ 1188 WARN_ON(!rwsem_is_locked(&inode->i_mapping->invalidate_lock)); in __ext2_truncate_blocks()
|
/linux/drivers/md/ |
H A D | dm-cache-target.c | 1528 static int invalidate_lock(struct dm_cache_migration *mg) in invalidate_lock() function 1578 return invalidate_lock(mg); in invalidate_start()
|
/linux/fs/iomap/ |
H A D | buffered-io.c | 1200 * inode->i_mapping->invalidate_lock (exclusive) 1241 * The caller must hold invalidate_lock to avoid races with page faults in iomap_write_delalloc_release() 1246 lockdep_assert_held_write(&inode->i_mapping->invalidate_lock); in iomap_write_delalloc_release()
|
/linux/fs/ext4/ |
H A D | inode.c | 416 * hold the i_rwsem and invalidate_lock exclusively. This ensures 434 !rwsem_is_locked(&inode->i_mapping->invalidate_lock)); in ext4_check_map_extents_env() 717 * for regular files that do not hold the i_rwsem or invalidate_lock. in ext4_map_blocks() 2363 * invalidate_lock, which could corrupt the extent status tree. in mpage_map_one_extent() 4388 if (WARN_ON_ONCE(!rwsem_is_locked(&inode->i_mapping->invalidate_lock))) in ext4_break_layouts()
|
/linux/fs/btrfs/ |
H A D | free-space-cache.c | 1009 * Reinitialize the class of struct inode's mapping->invalidate_lock for in load_free_space_cache() 1013 lockdep_set_class(&(&inode->i_data)->invalidate_lock, in load_free_space_cache()
|
/linux/Documentation/filesystems/xfs/ |
H A D | xfs-online-fsck-design.rst | 3330 4. Inode ``MMAPLOCK`` (page cache ``invalidate_lock``) lock for operations that
|