Lines Matching full:mapping
129 static void page_cache_delete(struct address_space *mapping, in page_cache_delete() argument
132 XA_STATE(xas, &mapping->i_pages, folio->index); in page_cache_delete()
135 mapping_set_update(&xas, mapping); in page_cache_delete()
145 folio->mapping = NULL; in page_cache_delete()
147 mapping->nrpages -= nr; in page_cache_delete()
150 static void filemap_unaccount_folio(struct address_space *mapping, in filemap_unaccount_folio() argument
163 if (mapping_exiting(mapping) && !folio_test_large(folio)) { in filemap_unaccount_folio()
192 filemap_nr_thps_dec(mapping); in filemap_unaccount_folio()
194 if (test_bit(AS_KERNEL_FILE, &folio->mapping->flags)) in filemap_unaccount_folio()
213 mapping_can_writeback(mapping))) in filemap_unaccount_folio()
214 folio_account_cleaned(folio, inode_to_wb(mapping->host)); in filemap_unaccount_folio()
224 struct address_space *mapping = folio->mapping; in __filemap_remove_folio() local
227 filemap_unaccount_folio(mapping, folio); in __filemap_remove_folio()
228 page_cache_delete(mapping, folio, shadow); in __filemap_remove_folio()
231 void filemap_free_folio(struct address_space *mapping, struct folio *folio) in filemap_free_folio() argument
235 free_folio = mapping->a_ops->free_folio; in filemap_free_folio()
252 struct address_space *mapping = folio->mapping; in filemap_remove_folio() local
255 spin_lock(&mapping->host->i_lock); in filemap_remove_folio()
256 xa_lock_irq(&mapping->i_pages); in filemap_remove_folio()
258 xa_unlock_irq(&mapping->i_pages); in filemap_remove_folio()
259 if (mapping_shrinkable(mapping)) in filemap_remove_folio()
260 inode_lru_list_add(mapping->host); in filemap_remove_folio()
261 spin_unlock(&mapping->host->i_lock); in filemap_remove_folio()
263 filemap_free_folio(mapping, folio); in filemap_remove_folio()
268 * @mapping: the mapping to which folios belong
271 * The function walks over mapping->i_pages and removes folios passed in
272 * @fbatch from the mapping. The function expects @fbatch to be sorted
274 * It tolerates holes in @fbatch (mapping entries at those indices are not
279 static void page_cache_delete_batch(struct address_space *mapping, in page_cache_delete_batch() argument
282 XA_STATE(xas, &mapping->i_pages, fbatch->folios[0]->index); in page_cache_delete_batch()
287 mapping_set_update(&xas, mapping); in page_cache_delete_batch()
310 folio->mapping = NULL; in page_cache_delete_batch()
317 mapping->nrpages -= total_pages; in page_cache_delete_batch()
320 void delete_from_page_cache_batch(struct address_space *mapping, in delete_from_page_cache_batch() argument
328 spin_lock(&mapping->host->i_lock); in delete_from_page_cache_batch()
329 xa_lock_irq(&mapping->i_pages); in delete_from_page_cache_batch()
334 filemap_unaccount_folio(mapping, folio); in delete_from_page_cache_batch()
336 page_cache_delete_batch(mapping, fbatch); in delete_from_page_cache_batch()
337 xa_unlock_irq(&mapping->i_pages); in delete_from_page_cache_batch()
338 if (mapping_shrinkable(mapping)) in delete_from_page_cache_batch()
339 inode_lru_list_add(mapping->host); in delete_from_page_cache_batch()
340 spin_unlock(&mapping->host->i_lock); in delete_from_page_cache_batch()
343 filemap_free_folio(mapping, fbatch->folios[i]); in delete_from_page_cache_batch()
346 int filemap_check_errors(struct address_space *mapping) in filemap_check_errors() argument
350 if (test_bit(AS_ENOSPC, &mapping->flags) && in filemap_check_errors()
351 test_and_clear_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_errors()
353 if (test_bit(AS_EIO, &mapping->flags) && in filemap_check_errors()
354 test_and_clear_bit(AS_EIO, &mapping->flags)) in filemap_check_errors()
360 static int filemap_check_and_keep_errors(struct address_space *mapping) in filemap_check_and_keep_errors() argument
363 if (test_bit(AS_EIO, &mapping->flags)) in filemap_check_and_keep_errors()
365 if (test_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_and_keep_errors()
370 static int filemap_writeback(struct address_space *mapping, loff_t start, in filemap_writeback() argument
382 if (!mapping_can_writeback(mapping) || in filemap_writeback()
383 !mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) in filemap_writeback()
386 wbc_attach_fdatawrite_inode(&wbc, mapping->host); in filemap_writeback()
387 ret = do_writepages(mapping, &wbc); in filemap_writeback()
396 * filemap_fdatawrite_range - start writeback on mapping dirty pages in range
397 * @mapping: address space structure to write
401 * Start writeback against all of a mapping's dirty pages that lie
409 int filemap_fdatawrite_range(struct address_space *mapping, loff_t start, in filemap_fdatawrite_range() argument
412 return filemap_writeback(mapping, start, end, WB_SYNC_ALL, NULL); in filemap_fdatawrite_range()
416 int filemap_fdatawrite(struct address_space *mapping) in filemap_fdatawrite() argument
418 return filemap_fdatawrite_range(mapping, 0, LLONG_MAX); in filemap_fdatawrite()
424 * @mapping: target address_space
433 int filemap_flush_range(struct address_space *mapping, loff_t start, in filemap_flush_range() argument
436 return filemap_writeback(mapping, start, end, WB_SYNC_NONE, NULL); in filemap_flush_range()
442 * @mapping: target address_space
449 int filemap_flush(struct address_space *mapping) in filemap_flush() argument
451 return filemap_flush_range(mapping, 0, LLONG_MAX); in filemap_flush()
456 * Start writeback on @nr_to_write pages from @mapping. No one but the existing
460 int filemap_flush_nr(struct address_space *mapping, long *nr_to_write) in filemap_flush_nr() argument
462 return filemap_writeback(mapping, 0, LLONG_MAX, WB_SYNC_NONE, in filemap_flush_nr()
469 * @mapping: address space within which to check
479 bool filemap_range_has_page(struct address_space *mapping, in filemap_range_has_page() argument
483 XA_STATE(xas, &mapping->i_pages, start_byte >> PAGE_SHIFT); in filemap_range_has_page()
510 static void __filemap_fdatawait_range(struct address_space *mapping, in __filemap_fdatawait_range() argument
523 nr_folios = filemap_get_folios_tag(mapping, &index, end, in __filemap_fdatawait_range()
541 * @mapping: address space structure to wait for
555 int filemap_fdatawait_range(struct address_space *mapping, loff_t start_byte, in filemap_fdatawait_range() argument
558 __filemap_fdatawait_range(mapping, start_byte, end_byte); in filemap_fdatawait_range()
559 return filemap_check_errors(mapping); in filemap_fdatawait_range()
565 * @mapping: address space structure to wait for
577 int filemap_fdatawait_range_keep_errors(struct address_space *mapping, in filemap_fdatawait_range_keep_errors() argument
580 __filemap_fdatawait_range(mapping, start_byte, end_byte); in filemap_fdatawait_range_keep_errors()
581 return filemap_check_and_keep_errors(mapping); in filemap_fdatawait_range_keep_errors()
603 struct address_space *mapping = file->f_mapping; in file_fdatawait_range() local
605 __filemap_fdatawait_range(mapping, start_byte, end_byte); in file_fdatawait_range()
612 * @mapping: address space structure to wait for
624 int filemap_fdatawait_keep_errors(struct address_space *mapping) in filemap_fdatawait_keep_errors() argument
626 __filemap_fdatawait_range(mapping, 0, LLONG_MAX); in filemap_fdatawait_keep_errors()
627 return filemap_check_and_keep_errors(mapping); in filemap_fdatawait_keep_errors()
632 static bool mapping_needs_writeback(struct address_space *mapping) in mapping_needs_writeback() argument
634 return mapping->nrpages; in mapping_needs_writeback()
637 bool filemap_range_has_writeback(struct address_space *mapping, in filemap_range_has_writeback() argument
640 XA_STATE(xas, &mapping->i_pages, start_byte >> PAGE_SHIFT); in filemap_range_has_writeback()
664 * @mapping: the address_space for the pages
675 int filemap_write_and_wait_range(struct address_space *mapping, in filemap_write_and_wait_range() argument
683 if (mapping_needs_writeback(mapping)) { in filemap_write_and_wait_range()
684 err = filemap_fdatawrite_range(mapping, lstart, lend); in filemap_write_and_wait_range()
692 __filemap_fdatawait_range(mapping, lstart, lend); in filemap_write_and_wait_range()
694 err2 = filemap_check_errors(mapping); in filemap_write_and_wait_range()
701 void __filemap_set_wb_err(struct address_space *mapping, int err) in __filemap_set_wb_err() argument
703 errseq_t eseq = errseq_set(&mapping->wb_err, err); in __filemap_set_wb_err()
705 trace_filemap_set_wb_err(mapping, eseq); in __filemap_set_wb_err()
718 * Grab the wb_err from the mapping. If it matches what we have in the file,
721 * If it doesn't match, then take the mapping value, set the "seen" flag in
727 * While we handle mapping->wb_err with atomic operations, the f_wb_err
737 struct address_space *mapping = file->f_mapping; in file_check_and_advance_wb_err() local
740 if (errseq_check(&mapping->wb_err, old)) { in file_check_and_advance_wb_err()
744 err = errseq_check_and_advance(&mapping->wb_err, in file_check_and_advance_wb_err()
755 clear_bit(AS_EIO, &mapping->flags); in file_check_and_advance_wb_err()
756 clear_bit(AS_ENOSPC, &mapping->flags); in file_check_and_advance_wb_err()
780 struct address_space *mapping = file->f_mapping; in file_write_and_wait_range() local
785 if (mapping_needs_writeback(mapping)) { in file_write_and_wait_range()
786 err = filemap_fdatawrite_range(mapping, lstart, lend); in file_write_and_wait_range()
789 __filemap_fdatawait_range(mapping, lstart, lend); in file_write_and_wait_range()
813 struct address_space *mapping = old->mapping; in replace_page_cache_folio() local
814 void (*free_folio)(struct folio *) = mapping->a_ops->free_folio; in replace_page_cache_folio()
816 XA_STATE(xas, &mapping->i_pages, offset); in replace_page_cache_folio()
820 VM_BUG_ON_FOLIO(new->mapping, new); in replace_page_cache_folio()
823 new->mapping = mapping; in replace_page_cache_folio()
831 old->mapping = NULL; in replace_page_cache_folio()
848 noinline int __filemap_add_folio(struct address_space *mapping, in __filemap_add_folio() argument
851 XA_STATE_ORDER(xas, &mapping->i_pages, index, folio_order(folio)); in __filemap_add_folio()
858 VM_BUG_ON_FOLIO(folio_order(folio) < mapping_min_folio_order(mapping), in __filemap_add_folio()
860 mapping_set_update(&xas, mapping); in __filemap_add_folio()
868 folio->mapping = mapping; in __filemap_add_folio()
896 BUG_ON(shmem_mapping(mapping)); in __filemap_add_folio()
919 mapping->nrpages += nr; in __filemap_add_folio()
942 folio->mapping = NULL; in __filemap_add_folio()
949 int filemap_add_folio(struct address_space *mapping, struct folio *folio, in filemap_add_folio() argument
955 bool kernel_file = test_bit(AS_KERNEL_FILE, &mapping->flags); in filemap_add_folio()
966 ret = __filemap_add_folio(mapping, folio, index, gfp, &shadow); in filemap_add_folio()
1021 * Lock exclusively invalidate_lock of any passed mapping that is not NULL.
1023 * @mapping1: the first mapping to lock
1024 * @mapping2: the second mapping to lock
1041 * Unlock exclusive invalidate_lock of any passed mapping that is not NULL.
1043 * @mapping1: the first mapping to unlock
1044 * @mapping2: the second mapping to unlock
1605 struct address_space *mapping = folio->mapping; in filemap_end_dropbehind() local
1613 if (mapping) in filemap_end_dropbehind()
1614 folio_unmap_invalidate(mapping, folio, 0); in filemap_end_dropbehind()
1789 * @mapping: Mapping.
1806 pgoff_t page_cache_next_miss(struct address_space *mapping, in page_cache_next_miss() argument
1809 XA_STATE(xas, &mapping->i_pages, index); in page_cache_next_miss()
1826 * @mapping: Mapping.
1843 pgoff_t page_cache_prev_miss(struct address_space *mapping, in page_cache_prev_miss() argument
1846 XA_STATE(xas, &mapping->i_pages, index); in page_cache_prev_miss()
1882 * @mapping: the address_space to search
1885 * Looks up the page cache entry at @mapping & @index. If it is a folio,
1892 void *filemap_get_entry(struct address_space *mapping, pgoff_t index) in filemap_get_entry() argument
1894 XA_STATE(xas, &mapping->i_pages, index); in filemap_get_entry()
1925 * @mapping: The address_space to search.
1931 * Looks up the page cache entry at @mapping & @index.
1940 struct folio *__filemap_get_folio_mpol(struct address_space *mapping, in __filemap_get_folio_mpol() argument
1946 folio = filemap_get_entry(mapping, index); in __filemap_get_folio_mpol()
1963 if (unlikely(folio->mapping != mapping)) { in __filemap_get_folio_mpol()
1983 unsigned int min_order = mapping_min_folio_order(mapping); in __filemap_get_folio_mpol()
1986 index = mapping_align_index(mapping, index); in __filemap_get_folio_mpol()
1988 if ((fgp_flags & FGP_WRITE) && mapping_can_writeback(mapping)) in __filemap_get_folio_mpol()
1999 if (order > mapping_max_folio_order(mapping)) in __filemap_get_folio_mpol()
2000 order = mapping_max_folio_order(mapping); in __filemap_get_folio_mpol()
2021 err = filemap_add_folio(mapping, folio, index, gfp); in __filemap_get_folio_mpol()
2097 * @mapping: The address_space to search
2104 * the mapping. The entries are placed in @fbatch. find_get_entries()
2115 unsigned find_get_entries(struct address_space *mapping, pgoff_t *start, in find_get_entries() argument
2118 XA_STATE(xas, &mapping->i_pages, *start); in find_get_entries()
2136 nr = 1 << xa_get_order(&mapping->i_pages, indices[idx]); in find_get_entries()
2146 * @mapping: The address_space to search.
2152 * find_lock_entries() will return a batch of entries from @mapping.
2164 unsigned find_lock_entries(struct address_space *mapping, pgoff_t *start, in find_lock_entries() argument
2167 XA_STATE(xas, &mapping->i_pages, *start); in find_lock_entries()
2186 if (folio->mapping != mapping || in find_lock_entries()
2220 * @mapping: The address_space to search
2225 * Search for and return a batch of folios in the mapping starting at
2232 unsigned filemap_get_folios(struct address_space *mapping, pgoff_t *start, in filemap_get_folios() argument
2235 return filemap_get_folios_tag(mapping, start, end, XA_PRESENT, fbatch); in filemap_get_folios()
2241 * @mapping: The address_space to search
2254 unsigned filemap_get_folios_contig(struct address_space *mapping, in filemap_get_folios_contig() argument
2257 XA_STATE(xas, &mapping->i_pages, *start); in filemap_get_folios_contig()
2313 * @mapping: The address_space to search
2330 unsigned filemap_get_folios_tag(struct address_space *mapping, pgoff_t *start, in filemap_get_folios_tag() argument
2333 XA_STATE(xas, &mapping->i_pages, *start); in filemap_get_folios_tag()
2370 * @mapping: The address_space to search
2385 unsigned filemap_get_folios_dirty(struct address_space *mapping, pgoff_t *start, in filemap_get_folios_dirty() argument
2388 XA_STATE(xas, &mapping->i_pages, *start); in filemap_get_folios_dirty()
2455 static void filemap_get_read_batch(struct address_space *mapping, in filemap_get_read_batch() argument
2458 XA_STATE(xas, &mapping->i_pages, index); in filemap_get_read_batch()
2517 static bool filemap_range_uptodate(struct address_space *mapping, in filemap_range_uptodate() argument
2526 if (!mapping->a_ops->is_partially_uptodate) in filemap_range_uptodate()
2528 if (mapping->host->i_blkbits >= folio_shift(folio)) in filemap_range_uptodate()
2541 return mapping->a_ops->is_partially_uptodate(folio, pos, count); in filemap_range_uptodate()
2545 struct address_space *mapping, size_t count, in filemap_update_page() argument
2551 if (!filemap_invalidate_trylock_shared(mapping)) in filemap_update_page()
2554 filemap_invalidate_lock_shared(mapping); in filemap_update_page()
2562 filemap_invalidate_unlock_shared(mapping); in filemap_update_page()
2576 if (!folio->mapping) in filemap_update_page()
2580 if (filemap_range_uptodate(mapping, iocb->ki_pos, count, folio, in filemap_update_page()
2588 error = filemap_read_folio(iocb->ki_filp, mapping->a_ops->read_folio, in filemap_update_page()
2594 filemap_invalidate_unlock_shared(mapping); in filemap_update_page()
2602 struct address_space *mapping = iocb->ki_filp->f_mapping; in filemap_create_folio() local
2605 unsigned int min_order = mapping_min_folio_order(mapping); in filemap_create_folio()
2611 folio = filemap_alloc_folio(mapping_gfp_mask(mapping), min_order, NULL); in filemap_create_folio()
2627 * while mapping blocks for IO so let's hold the lock here as in filemap_create_folio()
2630 filemap_invalidate_lock_shared(mapping); in filemap_create_folio()
2632 error = filemap_add_folio(mapping, folio, index, in filemap_create_folio()
2633 mapping_gfp_constraint(mapping, GFP_KERNEL)); in filemap_create_folio()
2639 error = filemap_read_folio(iocb->ki_filp, mapping->a_ops->read_folio, in filemap_create_folio()
2644 filemap_invalidate_unlock_shared(mapping); in filemap_create_folio()
2648 filemap_invalidate_unlock_shared(mapping); in filemap_create_folio()
2654 struct address_space *mapping, struct folio *folio, in filemap_readahead() argument
2657 DEFINE_READAHEAD(ractl, file, &file->f_ra, mapping, folio->index); in filemap_readahead()
2671 struct address_space *mapping = filp->f_mapping; in filemap_get_pages() local
2680 mapping_min_folio_nrbytes(mapping)) >> PAGE_SHIFT; in filemap_get_pages()
2685 filemap_get_read_batch(mapping, index, last_index - 1, fbatch); in filemap_get_pages()
2687 DEFINE_READAHEAD(ractl, filp, &filp->f_ra, mapping, index); in filemap_get_pages()
2698 filemap_get_read_batch(mapping, index, last_index - 1, fbatch); in filemap_get_pages()
2709 err = filemap_readahead(iocb, filp, mapping, folio, last_index); in filemap_get_pages()
2718 err = filemap_update_page(iocb, mapping, count, folio, in filemap_get_pages()
2724 trace_mm_filemap_get_pages(mapping, index, last_index - 1); in filemap_get_pages()
2773 struct address_space *mapping = filp->f_mapping; in filemap_read() local
2774 struct inode *inode = mapping->host; in filemap_read()
2826 writably_mapped = mapping_writably_mapped(mapping); in filemap_read()
2885 struct address_space *mapping = iocb->ki_filp->f_mapping; in kiocb_write_and_wait() local
2890 if (filemap_range_needs_writeback(mapping, pos, end)) in kiocb_write_and_wait()
2895 return filemap_write_and_wait_range(mapping, pos, end); in kiocb_write_and_wait()
2899 int filemap_invalidate_pages(struct address_space *mapping, in filemap_invalidate_pages() argument
2906 if (filemap_range_has_page(mapping, pos, end)) in filemap_invalidate_pages()
2909 ret = filemap_write_and_wait_range(mapping, pos, end); in filemap_invalidate_pages()
2920 return invalidate_inode_pages2_range(mapping, pos >> PAGE_SHIFT, in filemap_invalidate_pages()
2926 struct address_space *mapping = iocb->ki_filp->f_mapping; in kiocb_invalidate_pages() local
2928 return filemap_invalidate_pages(mapping, iocb->ki_pos, in kiocb_invalidate_pages()
2966 struct address_space *mapping = file->f_mapping; in generic_file_read_iter() local
2967 struct inode *inode = mapping->host; in generic_file_read_iter()
2974 retval = mapping->a_ops->direct_IO(iocb, iter); in generic_file_read_iter()
3147 struct address_space *mapping, struct folio *folio, in folio_seek_hole_data() argument
3150 const struct address_space_operations *ops = mapping->a_ops; in folio_seek_hole_data()
3151 size_t offset, bsz = i_blocksize(mapping->host); in folio_seek_hole_data()
3161 if (unlikely(folio->mapping != mapping)) in folio_seek_hole_data()
3188 * @mapping: Address space to search.
3204 loff_t mapping_seek_hole_data(struct address_space *mapping, loff_t start, in mapping_seek_hole_data() argument
3207 XA_STATE(xas, &mapping->i_pages, start >> PAGE_SHIFT); in mapping_seek_hole_data()
3228 start = folio_seek_hole_data(&xas, mapping, folio, start, pos, in mapping_seek_hole_data()
3309 struct address_space *mapping = file->f_mapping; in do_sync_mmap_readahead() local
3310 DEFINE_READAHEAD(ractl, file, ra, mapping, vmf->pgoff); in do_sync_mmap_readahead()
3517 struct address_space *mapping = file->f_mapping; in filemap_fault() local
3518 struct inode *inode = mapping->host; in filemap_fault()
3528 trace_mm_filemap_fault(mapping, index); in filemap_fault()
3533 folio = filemap_get_folio(mapping, index); in filemap_fault()
3542 filemap_invalidate_lock_shared(mapping); in filemap_fault()
3561 filemap_invalidate_lock_shared(mapping); in filemap_fault()
3564 folio = __filemap_get_folio(mapping, index, in filemap_fault()
3570 filemap_invalidate_unlock_shared(mapping); in filemap_fault()
3579 if (unlikely(folio->mapping != mapping)) { in filemap_fault()
3622 filemap_invalidate_unlock_shared(mapping); in filemap_fault()
3646 error = filemap_read_folio(file, mapping->a_ops->read_folio, folio); in filemap_fault()
3653 filemap_invalidate_unlock_shared(mapping); in filemap_fault()
3666 filemap_invalidate_unlock_shared(mapping); in filemap_fault()
3702 struct address_space *mapping, pgoff_t end_pgoff) in next_uptodate_folio() argument
3725 if (folio->mapping != mapping) in next_uptodate_folio()
3729 max_idx = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE); in next_uptodate_folio()
3752 struct address_space *mapping = folio->mapping; in filemap_map_folio_range() local
3769 if ((file_end >= folio_next_index(folio) || shmem_mapping(mapping)) && in filemap_map_folio_range()
3876 struct address_space *mapping = file->f_mapping; in filemap_map_pages() local
3879 XA_STATE(xas, &mapping->i_pages, start_pgoff); in filemap_map_pages()
3891 file_end = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE) - 1; in filemap_map_pages()
3895 folio = next_uptodate_folio(&xas, mapping, end_pgoff); in filemap_map_pages()
3906 if ((file_end >= folio_next_index(folio) || shmem_mapping(mapping)) && in filemap_map_pages()
3939 } while ((folio = next_uptodate_folio(&xas, mapping, end_pgoff)) != NULL); in filemap_map_pages()
3942 trace_mm_filemap_map_pages(mapping, start_pgoff, end_pgoff); in filemap_map_pages()
3958 struct address_space *mapping = vmf->vma->vm_file->f_mapping; in filemap_page_mkwrite() local
3962 sb_start_pagefault(mapping->host->i_sb); in filemap_page_mkwrite()
3965 if (folio->mapping != mapping) { in filemap_page_mkwrite()
3978 sb_end_pagefault(mapping->host->i_sb); in filemap_page_mkwrite()
3992 struct address_space *mapping = file->f_mapping; in generic_file_mmap() local
3994 if (!mapping->a_ops->read_folio) in generic_file_mmap()
4004 struct address_space *mapping = file->f_mapping; in generic_file_mmap_prepare() local
4006 if (!mapping->a_ops->read_folio) in generic_file_mmap_prepare()
4058 static struct folio *do_read_cache_folio(struct address_space *mapping, in do_read_cache_folio() argument
4065 filler = mapping->a_ops->read_folio; in do_read_cache_folio()
4067 folio = filemap_get_folio(mapping, index); in do_read_cache_folio()
4069 folio = filemap_alloc_folio(gfp, mapping_min_folio_order(mapping), NULL); in do_read_cache_folio()
4072 index = mapping_align_index(mapping, index); in do_read_cache_folio()
4073 err = filemap_add_folio(mapping, folio, index, gfp); in do_read_cache_folio()
4092 /* Folio was truncated from mapping */ in do_read_cache_folio()
4093 if (!folio->mapping) { in do_read_cache_folio()
4121 * @mapping: The address_space to read from.
4132 * Context: May sleep. Expects mapping->invalidate_lock to be held.
4135 struct folio *read_cache_folio(struct address_space *mapping, pgoff_t index, in read_cache_folio() argument
4138 return do_read_cache_folio(mapping, index, filler, file, in read_cache_folio()
4139 mapping_gfp_mask(mapping)); in read_cache_folio()
4145 * @mapping: The address_space for the folio.
4149 * This is the same as "read_cache_folio(mapping, index, NULL, NULL)", but with
4156 * The function expects mapping->invalidate_lock to be already held.
4160 struct folio *mapping_read_folio_gfp(struct address_space *mapping, in mapping_read_folio_gfp() argument
4163 return do_read_cache_folio(mapping, index, NULL, NULL, gfp); in mapping_read_folio_gfp()
4167 static struct page *do_read_cache_page(struct address_space *mapping, in do_read_cache_page() argument
4172 folio = do_read_cache_folio(mapping, index, filler, file, gfp); in do_read_cache_page()
4178 struct page *read_cache_page(struct address_space *mapping, in read_cache_page() argument
4181 return do_read_cache_page(mapping, index, filler, file, in read_cache_page()
4182 mapping_gfp_mask(mapping)); in read_cache_page()
4188 * @mapping: the page's address_space
4192 * This is the same as "read_mapping_page(mapping, index, NULL)", but with
4197 * The function expects mapping->invalidate_lock to be already held.
4201 struct page *read_cache_page_gfp(struct address_space *mapping, in read_cache_page_gfp() argument
4205 return do_read_cache_page(mapping, index, NULL, NULL, gfp); in read_cache_page_gfp()
4231 struct address_space *mapping = iocb->ki_filp->f_mapping; in kiocb_invalidate_post_direct_write() local
4233 if (mapping->nrpages && in kiocb_invalidate_post_direct_write()
4234 invalidate_inode_pages2_range(mapping, in kiocb_invalidate_post_direct_write()
4243 struct address_space *mapping = iocb->ki_filp->f_mapping; in generic_file_direct_write() local
4258 written = mapping->a_ops->direct_IO(iocb, from); in generic_file_direct_write()
4275 * Skip invalidation for async writes or if mapping has no pages. in generic_file_direct_write()
4278 struct inode *inode = mapping->host; in generic_file_direct_write()
4300 struct address_space *mapping = file->f_mapping; in generic_perform_write() local
4301 const struct address_space_operations *a_ops = mapping->a_ops; in generic_perform_write()
4302 size_t chunk = mapping_max_folio_size(mapping); in generic_perform_write()
4317 balance_dirty_pages_ratelimited(mapping); in generic_perform_write()
4324 status = a_ops->write_begin(iocb, mapping, pos, bytes, in generic_perform_write()
4333 if (mapping_writably_mapped(mapping)) in generic_perform_write()
4345 status = a_ops->write_end(iocb, mapping, pos, bytes, copied, in generic_perform_write()
4414 struct address_space *mapping = file->f_mapping; in __generic_file_write_iter() local
4415 struct inode *inode = mapping->host; in __generic_file_write_iter()
4495 struct address_space * const mapping = folio->mapping; in filemap_release_folio() local
4503 if (mapping && mapping->a_ops->release_folio) in filemap_release_folio()
4504 return mapping->a_ops->release_folio(folio, gfp); in filemap_release_folio()
4525 struct address_space *mapping = inode->i_mapping; in filemap_invalidate_inode() local
4530 if (!mapping || !mapping->nrpages || end < start) in filemap_invalidate_inode()
4534 filemap_invalidate_lock(mapping); in filemap_invalidate_inode()
4536 if (!mapping->nrpages) in filemap_invalidate_inode()
4539 unmap_mapping_pages(mapping, first, nr, false); in filemap_invalidate_inode()
4543 filemap_fdatawrite_range(mapping, start, end); in filemap_invalidate_inode()
4546 invalidate_inode_pages2_range(mapping, start / PAGE_SIZE, end / PAGE_SIZE); in filemap_invalidate_inode()
4549 filemap_invalidate_unlock(mapping); in filemap_invalidate_inode()
4551 return filemap_check_errors(mapping); in filemap_invalidate_inode()
4557 * filemap_cachestat() - compute the page cache statistics of a mapping
4558 * @mapping: The mapping to compute the statistics for.
4563 * This will query the page cache statistics of a mapping in the
4568 static void filemap_cachestat(struct address_space *mapping, in filemap_cachestat() argument
4571 XA_STATE(xas, &mapping->i_pages, first_index); in filemap_cachestat()
4617 if (shmem_mapping(mapping)) { in filemap_cachestat()
4717 struct address_space *mapping; in SYSCALL_DEFINE4() local
4743 mapping = fd_file(f)->f_mapping; in SYSCALL_DEFINE4()
4744 filemap_cachestat(mapping, first_index, last_index, &cs); in SYSCALL_DEFINE4()