Lines Matching full:mapping
127 static void page_cache_delete(struct address_space *mapping, in page_cache_delete() argument
130 XA_STATE(xas, &mapping->i_pages, folio->index); in page_cache_delete()
133 mapping_set_update(&xas, mapping); in page_cache_delete()
143 folio->mapping = NULL; in page_cache_delete()
145 mapping->nrpages -= nr; in page_cache_delete()
148 static void filemap_unaccount_folio(struct address_space *mapping, in filemap_unaccount_folio() argument
161 if (mapping_exiting(mapping) && !folio_test_large(folio)) { in filemap_unaccount_folio()
190 filemap_nr_thps_dec(mapping); in filemap_unaccount_folio()
208 mapping_can_writeback(mapping))) in filemap_unaccount_folio()
209 folio_account_cleaned(folio, inode_to_wb(mapping->host)); in filemap_unaccount_folio()
219 struct address_space *mapping = folio->mapping; in __filemap_remove_folio() local
222 filemap_unaccount_folio(mapping, folio); in __filemap_remove_folio()
223 page_cache_delete(mapping, folio, shadow); in __filemap_remove_folio()
226 void filemap_free_folio(struct address_space *mapping, struct folio *folio) in filemap_free_folio() argument
231 free_folio = mapping->a_ops->free_folio; in filemap_free_folio()
250 struct address_space *mapping = folio->mapping; in filemap_remove_folio() local
253 spin_lock(&mapping->host->i_lock); in filemap_remove_folio()
254 xa_lock_irq(&mapping->i_pages); in filemap_remove_folio()
256 xa_unlock_irq(&mapping->i_pages); in filemap_remove_folio()
257 if (mapping_shrinkable(mapping)) in filemap_remove_folio()
258 inode_add_lru(mapping->host); in filemap_remove_folio()
259 spin_unlock(&mapping->host->i_lock); in filemap_remove_folio()
261 filemap_free_folio(mapping, folio); in filemap_remove_folio()
266 * @mapping: the mapping to which folios belong
269 * The function walks over mapping->i_pages and removes folios passed in
270 * @fbatch from the mapping. The function expects @fbatch to be sorted
272 * It tolerates holes in @fbatch (mapping entries at those indices are not
277 static void page_cache_delete_batch(struct address_space *mapping, in page_cache_delete_batch() argument
280 XA_STATE(xas, &mapping->i_pages, fbatch->folios[0]->index); in page_cache_delete_batch()
285 mapping_set_update(&xas, mapping); in page_cache_delete_batch()
308 folio->mapping = NULL; in page_cache_delete_batch()
315 mapping->nrpages -= total_pages; in page_cache_delete_batch()
318 void delete_from_page_cache_batch(struct address_space *mapping, in delete_from_page_cache_batch() argument
326 spin_lock(&mapping->host->i_lock); in delete_from_page_cache_batch()
327 xa_lock_irq(&mapping->i_pages); in delete_from_page_cache_batch()
332 filemap_unaccount_folio(mapping, folio); in delete_from_page_cache_batch()
334 page_cache_delete_batch(mapping, fbatch); in delete_from_page_cache_batch()
335 xa_unlock_irq(&mapping->i_pages); in delete_from_page_cache_batch()
336 if (mapping_shrinkable(mapping)) in delete_from_page_cache_batch()
337 inode_add_lru(mapping->host); in delete_from_page_cache_batch()
338 spin_unlock(&mapping->host->i_lock); in delete_from_page_cache_batch()
341 filemap_free_folio(mapping, fbatch->folios[i]); in delete_from_page_cache_batch()
344 int filemap_check_errors(struct address_space *mapping) in filemap_check_errors() argument
348 if (test_bit(AS_ENOSPC, &mapping->flags) && in filemap_check_errors()
349 test_and_clear_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_errors()
351 if (test_bit(AS_EIO, &mapping->flags) && in filemap_check_errors()
352 test_and_clear_bit(AS_EIO, &mapping->flags)) in filemap_check_errors()
358 static int filemap_check_and_keep_errors(struct address_space *mapping) in filemap_check_and_keep_errors() argument
361 if (test_bit(AS_EIO, &mapping->flags)) in filemap_check_and_keep_errors()
363 if (test_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_and_keep_errors()
369 * filemap_fdatawrite_wbc - start writeback on mapping dirty pages in range
370 * @mapping: address space structure to write
373 * Call writepages on the mapping using the provided wbc to control the
378 int filemap_fdatawrite_wbc(struct address_space *mapping, in filemap_fdatawrite_wbc() argument
383 if (!mapping_can_writeback(mapping) || in filemap_fdatawrite_wbc()
384 !mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) in filemap_fdatawrite_wbc()
387 wbc_attach_fdatawrite_inode(wbc, mapping->host); in filemap_fdatawrite_wbc()
388 ret = do_writepages(mapping, wbc); in filemap_fdatawrite_wbc()
395 * __filemap_fdatawrite_range - start writeback on mapping dirty pages in range
396 * @mapping: address space structure to write
401 * Start writeback against all of a mapping's dirty pages that lie
411 int __filemap_fdatawrite_range(struct address_space *mapping, loff_t start, in __filemap_fdatawrite_range() argument
421 return filemap_fdatawrite_wbc(mapping, &wbc); in __filemap_fdatawrite_range()
424 static inline int __filemap_fdatawrite(struct address_space *mapping, in __filemap_fdatawrite() argument
427 return __filemap_fdatawrite_range(mapping, 0, LLONG_MAX, sync_mode); in __filemap_fdatawrite()
430 int filemap_fdatawrite(struct address_space *mapping) in filemap_fdatawrite() argument
432 return __filemap_fdatawrite(mapping, WB_SYNC_ALL); in filemap_fdatawrite()
436 int filemap_fdatawrite_range(struct address_space *mapping, loff_t start, in filemap_fdatawrite_range() argument
439 return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_ALL); in filemap_fdatawrite_range()
445 * @mapping: target address_space
454 int filemap_fdatawrite_range_kick(struct address_space *mapping, loff_t start, in filemap_fdatawrite_range_kick() argument
457 return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_NONE); in filemap_fdatawrite_range_kick()
463 * @mapping: target address_space
470 int filemap_flush(struct address_space *mapping) in filemap_flush() argument
472 return __filemap_fdatawrite(mapping, WB_SYNC_NONE); in filemap_flush()
478 * @mapping: address space within which to check
488 bool filemap_range_has_page(struct address_space *mapping, in filemap_range_has_page() argument
492 XA_STATE(xas, &mapping->i_pages, start_byte >> PAGE_SHIFT); in filemap_range_has_page()
519 static void __filemap_fdatawait_range(struct address_space *mapping, in __filemap_fdatawait_range() argument
532 nr_folios = filemap_get_folios_tag(mapping, &index, end, in __filemap_fdatawait_range()
550 * @mapping: address space structure to wait for
564 int filemap_fdatawait_range(struct address_space *mapping, loff_t start_byte, in filemap_fdatawait_range() argument
567 __filemap_fdatawait_range(mapping, start_byte, end_byte); in filemap_fdatawait_range()
568 return filemap_check_errors(mapping); in filemap_fdatawait_range()
574 * @mapping: address space structure to wait for
586 int filemap_fdatawait_range_keep_errors(struct address_space *mapping, in filemap_fdatawait_range_keep_errors() argument
589 __filemap_fdatawait_range(mapping, start_byte, end_byte); in filemap_fdatawait_range_keep_errors()
590 return filemap_check_and_keep_errors(mapping); in filemap_fdatawait_range_keep_errors()
612 struct address_space *mapping = file->f_mapping; in file_fdatawait_range() local
614 __filemap_fdatawait_range(mapping, start_byte, end_byte); in file_fdatawait_range()
621 * @mapping: address space structure to wait for
633 int filemap_fdatawait_keep_errors(struct address_space *mapping) in filemap_fdatawait_keep_errors() argument
635 __filemap_fdatawait_range(mapping, 0, LLONG_MAX); in filemap_fdatawait_keep_errors()
636 return filemap_check_and_keep_errors(mapping); in filemap_fdatawait_keep_errors()
641 static bool mapping_needs_writeback(struct address_space *mapping) in mapping_needs_writeback() argument
643 return mapping->nrpages; in mapping_needs_writeback()
646 bool filemap_range_has_writeback(struct address_space *mapping, in filemap_range_has_writeback() argument
649 XA_STATE(xas, &mapping->i_pages, start_byte >> PAGE_SHIFT); in filemap_range_has_writeback()
673 * @mapping: the address_space for the pages
684 int filemap_write_and_wait_range(struct address_space *mapping, in filemap_write_and_wait_range() argument
692 if (mapping_needs_writeback(mapping)) { in filemap_write_and_wait_range()
693 err = __filemap_fdatawrite_range(mapping, lstart, lend, in filemap_write_and_wait_range()
702 __filemap_fdatawait_range(mapping, lstart, lend); in filemap_write_and_wait_range()
704 err2 = filemap_check_errors(mapping); in filemap_write_and_wait_range()
711 void __filemap_set_wb_err(struct address_space *mapping, int err) in __filemap_set_wb_err() argument
713 errseq_t eseq = errseq_set(&mapping->wb_err, err); in __filemap_set_wb_err()
715 trace_filemap_set_wb_err(mapping, eseq); in __filemap_set_wb_err()
728 * Grab the wb_err from the mapping. If it matches what we have in the file,
731 * If it doesn't match, then take the mapping value, set the "seen" flag in
737 * While we handle mapping->wb_err with atomic operations, the f_wb_err
747 struct address_space *mapping = file->f_mapping; in file_check_and_advance_wb_err() local
750 if (errseq_check(&mapping->wb_err, old)) { in file_check_and_advance_wb_err()
754 err = errseq_check_and_advance(&mapping->wb_err, in file_check_and_advance_wb_err()
765 clear_bit(AS_EIO, &mapping->flags); in file_check_and_advance_wb_err()
766 clear_bit(AS_ENOSPC, &mapping->flags); in file_check_and_advance_wb_err()
790 struct address_space *mapping = file->f_mapping; in file_write_and_wait_range() local
795 if (mapping_needs_writeback(mapping)) { in file_write_and_wait_range()
796 err = __filemap_fdatawrite_range(mapping, lstart, lend, in file_write_and_wait_range()
800 __filemap_fdatawait_range(mapping, lstart, lend); in file_write_and_wait_range()
824 struct address_space *mapping = old->mapping; in replace_page_cache_folio() local
825 void (*free_folio)(struct folio *) = mapping->a_ops->free_folio; in replace_page_cache_folio()
827 XA_STATE(xas, &mapping->i_pages, offset); in replace_page_cache_folio()
831 VM_BUG_ON_FOLIO(new->mapping, new); in replace_page_cache_folio()
834 new->mapping = mapping; in replace_page_cache_folio()
842 old->mapping = NULL; in replace_page_cache_folio()
859 noinline int __filemap_add_folio(struct address_space *mapping, in __filemap_add_folio() argument
862 XA_STATE(xas, &mapping->i_pages, index); in __filemap_add_folio()
870 VM_BUG_ON_FOLIO(folio_order(folio) < mapping_min_folio_order(mapping), in __filemap_add_folio()
872 mapping_set_update(&xas, mapping); in __filemap_add_folio()
881 folio->mapping = mapping; in __filemap_add_folio()
912 BUG_ON(shmem_mapping(mapping)); in __filemap_add_folio()
928 mapping->nrpages += nr; in __filemap_add_folio()
962 folio->mapping = NULL; in __filemap_add_folio()
969 int filemap_add_folio(struct address_space *mapping, struct folio *folio, in filemap_add_folio() argument
980 ret = __filemap_add_folio(mapping, folio, index, gfp, &shadow); in filemap_add_folio()
1026 * Lock exclusively invalidate_lock of any passed mapping that is not NULL.
1028 * @mapping1: the first mapping to lock
1029 * @mapping2: the second mapping to lock
1046 * Unlock exclusive invalidate_lock of any passed mapping that is not NULL.
1048 * @mapping1: the first mapping to unlock
1049 * @mapping2: the second mapping to unlock
1607 if (folio->mapping) in folio_end_dropbehind_write()
1608 folio_unmap_invalidate(folio->mapping, folio, 0); in folio_end_dropbehind_write()
1749 * @mapping: Mapping.
1766 pgoff_t page_cache_next_miss(struct address_space *mapping, in page_cache_next_miss() argument
1769 XA_STATE(xas, &mapping->i_pages, index); in page_cache_next_miss()
1785 * @mapping: Mapping.
1802 pgoff_t page_cache_prev_miss(struct address_space *mapping, in page_cache_prev_miss() argument
1805 XA_STATE(xas, &mapping->i_pages, index); in page_cache_prev_miss()
1841 * @mapping: the address_space to search
1844 * Looks up the page cache entry at @mapping & @index. If it is a folio,
1851 void *filemap_get_entry(struct address_space *mapping, pgoff_t index) in filemap_get_entry() argument
1853 XA_STATE(xas, &mapping->i_pages, index); in filemap_get_entry()
1884 * @mapping: The address_space to search.
1889 * Looks up the page cache entry at @mapping & @index.
1898 struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, in __filemap_get_folio() argument
1904 folio = filemap_get_entry(mapping, index); in __filemap_get_folio()
1921 if (unlikely(folio->mapping != mapping)) { in __filemap_get_folio()
1941 unsigned int min_order = mapping_min_folio_order(mapping); in __filemap_get_folio()
1944 index = mapping_align_index(mapping, index); in __filemap_get_folio()
1946 if ((fgp_flags & FGP_WRITE) && mapping_can_writeback(mapping)) in __filemap_get_folio()
1957 if (order > mapping_max_folio_order(mapping)) in __filemap_get_folio()
1958 order = mapping_max_folio_order(mapping); in __filemap_get_folio()
1979 err = filemap_add_folio(mapping, folio, index, gfp); in __filemap_get_folio()
2055 * @mapping: The address_space to search
2062 * the mapping. The entries are placed in @fbatch. find_get_entries()
2073 unsigned find_get_entries(struct address_space *mapping, pgoff_t *start, in find_get_entries() argument
2076 XA_STATE(xas, &mapping->i_pages, *start); in find_get_entries()
2094 nr = 1 << xa_get_order(&mapping->i_pages, indices[idx]); in find_get_entries()
2104 * @mapping: The address_space to search.
2110 * find_lock_entries() will return a batch of entries from @mapping.
2122 unsigned find_lock_entries(struct address_space *mapping, pgoff_t *start, in find_lock_entries() argument
2125 XA_STATE(xas, &mapping->i_pages, *start); in find_lock_entries()
2144 if (folio->mapping != mapping || in find_lock_entries()
2178 * @mapping: The address_space to search
2183 * Search for and return a batch of folios in the mapping starting at
2190 unsigned filemap_get_folios(struct address_space *mapping, pgoff_t *start, in filemap_get_folios() argument
2193 return filemap_get_folios_tag(mapping, start, end, XA_PRESENT, fbatch); in filemap_get_folios()
2199 * @mapping: The address_space to search
2212 unsigned filemap_get_folios_contig(struct address_space *mapping, in filemap_get_folios_contig() argument
2215 XA_STATE(xas, &mapping->i_pages, *start); in filemap_get_folios_contig()
2271 * @mapping: The address_space to search
2288 unsigned filemap_get_folios_tag(struct address_space *mapping, pgoff_t *start, in filemap_get_folios_tag() argument
2291 XA_STATE(xas, &mapping->i_pages, *start); in filemap_get_folios_tag()
2355 static void filemap_get_read_batch(struct address_space *mapping, in filemap_get_read_batch() argument
2358 XA_STATE(xas, &mapping->i_pages, index); in filemap_get_read_batch()
2417 static bool filemap_range_uptodate(struct address_space *mapping, in filemap_range_uptodate() argument
2426 if (!mapping->a_ops->is_partially_uptodate) in filemap_range_uptodate()
2428 if (mapping->host->i_blkbits >= folio_shift(folio)) in filemap_range_uptodate()
2438 return mapping->a_ops->is_partially_uptodate(folio, pos, count); in filemap_range_uptodate()
2442 struct address_space *mapping, size_t count, in filemap_update_page() argument
2448 if (!filemap_invalidate_trylock_shared(mapping)) in filemap_update_page()
2451 filemap_invalidate_lock_shared(mapping); in filemap_update_page()
2459 filemap_invalidate_unlock_shared(mapping); in filemap_update_page()
2473 if (!folio->mapping) in filemap_update_page()
2477 if (filemap_range_uptodate(mapping, iocb->ki_pos, count, folio, in filemap_update_page()
2485 error = filemap_read_folio(iocb->ki_filp, mapping->a_ops->read_folio, in filemap_update_page()
2491 filemap_invalidate_unlock_shared(mapping); in filemap_update_page()
2499 struct address_space *mapping = iocb->ki_filp->f_mapping; in filemap_create_folio() local
2502 unsigned int min_order = mapping_min_folio_order(mapping); in filemap_create_folio()
2508 folio = filemap_alloc_folio(mapping_gfp_mask(mapping), min_order); in filemap_create_folio()
2524 * while mapping blocks for IO so let's hold the lock here as in filemap_create_folio()
2527 filemap_invalidate_lock_shared(mapping); in filemap_create_folio()
2529 error = filemap_add_folio(mapping, folio, index, in filemap_create_folio()
2530 mapping_gfp_constraint(mapping, GFP_KERNEL)); in filemap_create_folio()
2536 error = filemap_read_folio(iocb->ki_filp, mapping->a_ops->read_folio, in filemap_create_folio()
2541 filemap_invalidate_unlock_shared(mapping); in filemap_create_folio()
2545 filemap_invalidate_unlock_shared(mapping); in filemap_create_folio()
2551 struct address_space *mapping, struct folio *folio, in filemap_readahead() argument
2554 DEFINE_READAHEAD(ractl, file, &file->f_ra, mapping, folio->index); in filemap_readahead()
2568 struct address_space *mapping = filp->f_mapping; in filemap_get_pages() local
2581 filemap_get_read_batch(mapping, index, last_index - 1, fbatch); in filemap_get_pages()
2583 DEFINE_READAHEAD(ractl, filp, &filp->f_ra, mapping, index); in filemap_get_pages()
2594 filemap_get_read_batch(mapping, index, last_index - 1, fbatch); in filemap_get_pages()
2605 err = filemap_readahead(iocb, filp, mapping, folio, last_index); in filemap_get_pages()
2613 err = filemap_update_page(iocb, mapping, count, folio, in filemap_get_pages()
2619 trace_mm_filemap_get_pages(mapping, index, last_index - 1); in filemap_get_pages()
2638 static void filemap_end_dropbehind_read(struct address_space *mapping, in filemap_end_dropbehind_read() argument
2647 folio_unmap_invalidate(mapping, folio, 0); in filemap_end_dropbehind_read()
2670 struct address_space *mapping = filp->f_mapping; in filemap_read() local
2671 struct inode *inode = mapping->host; in filemap_read()
2723 writably_mapped = mapping_writably_mapped(mapping); in filemap_read()
2768 filemap_end_dropbehind_read(mapping, folio); in filemap_read()
2782 struct address_space *mapping = iocb->ki_filp->f_mapping; in kiocb_write_and_wait() local
2787 if (filemap_range_needs_writeback(mapping, pos, end)) in kiocb_write_and_wait()
2792 return filemap_write_and_wait_range(mapping, pos, end); in kiocb_write_and_wait()
2796 int filemap_invalidate_pages(struct address_space *mapping, in filemap_invalidate_pages() argument
2803 if (filemap_range_has_page(mapping, pos, end)) in filemap_invalidate_pages()
2806 ret = filemap_write_and_wait_range(mapping, pos, end); in filemap_invalidate_pages()
2817 return invalidate_inode_pages2_range(mapping, pos >> PAGE_SHIFT, in filemap_invalidate_pages()
2823 struct address_space *mapping = iocb->ki_filp->f_mapping; in kiocb_invalidate_pages() local
2825 return filemap_invalidate_pages(mapping, iocb->ki_pos, in kiocb_invalidate_pages()
2863 struct address_space *mapping = file->f_mapping; in generic_file_read_iter() local
2864 struct inode *inode = mapping->host; in generic_file_read_iter()
2871 retval = mapping->a_ops->direct_IO(iocb, iter); in generic_file_read_iter()
3044 struct address_space *mapping, struct folio *folio, in folio_seek_hole_data() argument
3047 const struct address_space_operations *ops = mapping->a_ops; in folio_seek_hole_data()
3048 size_t offset, bsz = i_blocksize(mapping->host); in folio_seek_hole_data()
3058 if (unlikely(folio->mapping != mapping)) in folio_seek_hole_data()
3085 * @mapping: Address space to search.
3101 loff_t mapping_seek_hole_data(struct address_space *mapping, loff_t start, in mapping_seek_hole_data() argument
3104 XA_STATE(xas, &mapping->i_pages, start >> PAGE_SHIFT); in mapping_seek_hole_data()
3125 start = folio_seek_hole_data(&xas, mapping, folio, start, pos, in mapping_seek_hole_data()
3206 struct address_space *mapping = file->f_mapping; in do_sync_mmap_readahead() local
3207 DEFINE_READAHEAD(ractl, file, ra, mapping, vmf->pgoff); in do_sync_mmap_readahead()
3366 struct address_space *mapping = file->f_mapping; in filemap_fault() local
3367 struct inode *inode = mapping->host; in filemap_fault()
3377 trace_mm_filemap_fault(mapping, index); in filemap_fault()
3382 folio = filemap_get_folio(mapping, index); in filemap_fault()
3391 filemap_invalidate_lock_shared(mapping); in filemap_fault()
3410 filemap_invalidate_lock_shared(mapping); in filemap_fault()
3413 folio = __filemap_get_folio(mapping, index, in filemap_fault()
3419 filemap_invalidate_unlock_shared(mapping); in filemap_fault()
3428 if (unlikely(folio->mapping != mapping)) { in filemap_fault()
3471 filemap_invalidate_unlock_shared(mapping); in filemap_fault()
3495 error = filemap_read_folio(file, mapping->a_ops->read_folio, folio); in filemap_fault()
3502 filemap_invalidate_unlock_shared(mapping); in filemap_fault()
3515 filemap_invalidate_unlock_shared(mapping); in filemap_fault()
3551 struct address_space *mapping, pgoff_t end_pgoff) in next_uptodate_folio() argument
3574 if (folio->mapping != mapping) in next_uptodate_folio()
3578 max_idx = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE); in next_uptodate_folio()
3695 struct address_space *mapping = file->f_mapping; in filemap_map_pages() local
3698 XA_STATE(xas, &mapping->i_pages, start_pgoff); in filemap_map_pages()
3705 folio = next_uptodate_folio(&xas, mapping, end_pgoff); in filemap_map_pages()
3722 file_end = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE) - 1; in filemap_map_pages()
3746 } while ((folio = next_uptodate_folio(&xas, mapping, end_pgoff)) != NULL); in filemap_map_pages()
3749 trace_mm_filemap_map_pages(mapping, start_pgoff, end_pgoff); in filemap_map_pages()
3765 struct address_space *mapping = vmf->vma->vm_file->f_mapping; in filemap_page_mkwrite() local
3769 sb_start_pagefault(mapping->host->i_sb); in filemap_page_mkwrite()
3772 if (folio->mapping != mapping) { in filemap_page_mkwrite()
3785 sb_end_pagefault(mapping->host->i_sb); in filemap_page_mkwrite()
3799 struct address_space *mapping = file->f_mapping; in generic_file_mmap() local
3801 if (!mapping->a_ops->read_folio) in generic_file_mmap()
3836 static struct folio *do_read_cache_folio(struct address_space *mapping, in do_read_cache_folio() argument
3843 filler = mapping->a_ops->read_folio; in do_read_cache_folio()
3845 folio = filemap_get_folio(mapping, index); in do_read_cache_folio()
3848 mapping_min_folio_order(mapping)); in do_read_cache_folio()
3851 index = mapping_align_index(mapping, index); in do_read_cache_folio()
3852 err = filemap_add_folio(mapping, folio, index, gfp); in do_read_cache_folio()
3871 /* Folio was truncated from mapping */ in do_read_cache_folio()
3872 if (!folio->mapping) { in do_read_cache_folio()
3900 * @mapping: The address_space to read from.
3911 * Context: May sleep. Expects mapping->invalidate_lock to be held.
3914 struct folio *read_cache_folio(struct address_space *mapping, pgoff_t index, in read_cache_folio() argument
3917 return do_read_cache_folio(mapping, index, filler, file, in read_cache_folio()
3918 mapping_gfp_mask(mapping)); in read_cache_folio()
3924 * @mapping: The address_space for the folio.
3928 * This is the same as "read_cache_folio(mapping, index, NULL, NULL)", but with
3935 * The function expects mapping->invalidate_lock to be already held.
3939 struct folio *mapping_read_folio_gfp(struct address_space *mapping, in mapping_read_folio_gfp() argument
3942 return do_read_cache_folio(mapping, index, NULL, NULL, gfp); in mapping_read_folio_gfp()
3946 static struct page *do_read_cache_page(struct address_space *mapping, in do_read_cache_page() argument
3951 folio = do_read_cache_folio(mapping, index, filler, file, gfp); in do_read_cache_page()
3957 struct page *read_cache_page(struct address_space *mapping, in read_cache_page() argument
3960 return do_read_cache_page(mapping, index, filler, file, in read_cache_page()
3961 mapping_gfp_mask(mapping)); in read_cache_page()
3967 * @mapping: the page's address_space
3971 * This is the same as "read_mapping_page(mapping, index, NULL)", but with
3976 * The function expects mapping->invalidate_lock to be already held.
3980 struct page *read_cache_page_gfp(struct address_space *mapping, in read_cache_page_gfp() argument
3984 return do_read_cache_page(mapping, index, NULL, NULL, gfp); in read_cache_page_gfp()
4010 struct address_space *mapping = iocb->ki_filp->f_mapping; in kiocb_invalidate_post_direct_write() local
4012 if (mapping->nrpages && in kiocb_invalidate_post_direct_write()
4013 invalidate_inode_pages2_range(mapping, in kiocb_invalidate_post_direct_write()
4022 struct address_space *mapping = iocb->ki_filp->f_mapping; in generic_file_direct_write() local
4037 written = mapping->a_ops->direct_IO(iocb, from); in generic_file_direct_write()
4054 * Skip invalidation for async writes or if mapping has no pages. in generic_file_direct_write()
4057 struct inode *inode = mapping->host; in generic_file_direct_write()
4079 struct address_space *mapping = file->f_mapping; in generic_perform_write() local
4080 const struct address_space_operations *a_ops = mapping->a_ops; in generic_perform_write()
4081 size_t chunk = mapping_max_folio_size(mapping); in generic_perform_write()
4096 balance_dirty_pages_ratelimited(mapping); in generic_perform_write()
4103 status = a_ops->write_begin(file, mapping, pos, bytes, in generic_perform_write()
4112 if (mapping_writably_mapped(mapping)) in generic_perform_write()
4124 status = a_ops->write_end(file, mapping, pos, bytes, copied, in generic_perform_write()
4193 struct address_space *mapping = file->f_mapping; in __generic_file_write_iter() local
4194 struct inode *inode = mapping->host; in __generic_file_write_iter()
4274 struct address_space * const mapping = folio->mapping; in filemap_release_folio() local
4282 if (mapping && mapping->a_ops->release_folio) in filemap_release_folio()
4283 return mapping->a_ops->release_folio(folio, gfp); in filemap_release_folio()
4304 struct address_space *mapping = inode->i_mapping; in filemap_invalidate_inode() local
4309 if (!mapping || !mapping->nrpages || end < start) in filemap_invalidate_inode()
4313 filemap_invalidate_lock(mapping); in filemap_invalidate_inode()
4315 if (!mapping->nrpages) in filemap_invalidate_inode()
4318 unmap_mapping_pages(mapping, first, nr, false); in filemap_invalidate_inode()
4329 filemap_fdatawrite_wbc(mapping, &wbc); in filemap_invalidate_inode()
4333 invalidate_inode_pages2_range(mapping, start / PAGE_SIZE, end / PAGE_SIZE); in filemap_invalidate_inode()
4336 filemap_invalidate_unlock(mapping); in filemap_invalidate_inode()
4338 return filemap_check_errors(mapping); in filemap_invalidate_inode()
4344 * filemap_cachestat() - compute the page cache statistics of a mapping
4345 * @mapping: The mapping to compute the statistics for.
4350 * This will query the page cache statistics of a mapping in the
4355 static void filemap_cachestat(struct address_space *mapping, in filemap_cachestat() argument
4358 XA_STATE(xas, &mapping->i_pages, first_index); in filemap_cachestat()
4404 if (shmem_mapping(mapping)) { in filemap_cachestat()
4504 struct address_space *mapping; in SYSCALL_DEFINE4() local
4530 mapping = fd_file(f)->f_mapping; in SYSCALL_DEFINE4()
4531 filemap_cachestat(mapping, first_index, last_index, &cs); in SYSCALL_DEFINE4()