Lines Matching refs:mapping
119 static void page_cache_delete(struct address_space *mapping, in page_cache_delete() argument
122 XA_STATE(xas, &mapping->i_pages, page->index); in page_cache_delete()
125 mapping_set_update(&xas, mapping); in page_cache_delete()
140 page->mapping = NULL; in page_cache_delete()
144 mapping->nrexceptional += nr; in page_cache_delete()
153 mapping->nrpages -= nr; in page_cache_delete()
156 static void unaccount_page_cache_page(struct address_space *mapping, in unaccount_page_cache_page() argument
169 cleancache_invalidate_page(mapping, page); in unaccount_page_cache_page()
183 if (mapping_exiting(mapping) && in unaccount_page_cache_page()
209 filemap_nr_thps_dec(mapping); in unaccount_page_cache_page()
223 account_page_cleaned(page, mapping, inode_to_wb(mapping->host)); in unaccount_page_cache_page()
233 struct address_space *mapping = page->mapping; in __delete_from_page_cache() local
237 unaccount_page_cache_page(mapping, page); in __delete_from_page_cache()
238 page_cache_delete(mapping, page, shadow); in __delete_from_page_cache()
241 static void page_cache_free_page(struct address_space *mapping, in page_cache_free_page() argument
246 freepage = mapping->a_ops->freepage; in page_cache_free_page()
268 struct address_space *mapping = page_mapping(page); in delete_from_page_cache() local
272 xa_lock_irqsave(&mapping->i_pages, flags); in delete_from_page_cache()
274 xa_unlock_irqrestore(&mapping->i_pages, flags); in delete_from_page_cache()
276 page_cache_free_page(mapping, page); in delete_from_page_cache()
294 static void page_cache_delete_batch(struct address_space *mapping, in page_cache_delete_batch() argument
297 XA_STATE(xas, &mapping->i_pages, pvec->pages[0]->index); in page_cache_delete_batch()
302 mapping_set_update(&xas, mapping); in page_cache_delete_batch()
326 page->mapping = NULL; in page_cache_delete_batch()
339 mapping->nrpages -= total_pages; in page_cache_delete_batch()
342 void delete_from_page_cache_batch(struct address_space *mapping, in delete_from_page_cache_batch() argument
351 xa_lock_irqsave(&mapping->i_pages, flags); in delete_from_page_cache_batch()
355 unaccount_page_cache_page(mapping, pvec->pages[i]); in delete_from_page_cache_batch()
357 page_cache_delete_batch(mapping, pvec); in delete_from_page_cache_batch()
358 xa_unlock_irqrestore(&mapping->i_pages, flags); in delete_from_page_cache_batch()
361 page_cache_free_page(mapping, pvec->pages[i]); in delete_from_page_cache_batch()
364 int filemap_check_errors(struct address_space *mapping) in filemap_check_errors() argument
368 if (test_bit(AS_ENOSPC, &mapping->flags) && in filemap_check_errors()
369 test_and_clear_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_errors()
371 if (test_bit(AS_EIO, &mapping->flags) && in filemap_check_errors()
372 test_and_clear_bit(AS_EIO, &mapping->flags)) in filemap_check_errors()
378 static int filemap_check_and_keep_errors(struct address_space *mapping) in filemap_check_and_keep_errors() argument
381 if (test_bit(AS_EIO, &mapping->flags)) in filemap_check_and_keep_errors()
383 if (test_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_and_keep_errors()
405 int __filemap_fdatawrite_range(struct address_space *mapping, loff_t start, in __filemap_fdatawrite_range() argument
416 if (!mapping_cap_writeback_dirty(mapping) || in __filemap_fdatawrite_range()
417 !mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) in __filemap_fdatawrite_range()
420 wbc_attach_fdatawrite_inode(&wbc, mapping->host); in __filemap_fdatawrite_range()
421 ret = do_writepages(mapping, &wbc); in __filemap_fdatawrite_range()
426 static inline int __filemap_fdatawrite(struct address_space *mapping, in __filemap_fdatawrite() argument
429 return __filemap_fdatawrite_range(mapping, 0, LLONG_MAX, sync_mode); in __filemap_fdatawrite()
432 int filemap_fdatawrite(struct address_space *mapping) in filemap_fdatawrite() argument
434 return __filemap_fdatawrite(mapping, WB_SYNC_ALL); in filemap_fdatawrite()
438 int filemap_fdatawrite_range(struct address_space *mapping, loff_t start, in filemap_fdatawrite_range() argument
441 return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_ALL); in filemap_fdatawrite_range()
454 int filemap_flush(struct address_space *mapping) in filemap_flush() argument
456 return __filemap_fdatawrite(mapping, WB_SYNC_NONE); in filemap_flush()
472 bool filemap_range_has_page(struct address_space *mapping, in filemap_range_has_page() argument
476 XA_STATE(xas, &mapping->i_pages, start_byte >> PAGE_SHIFT); in filemap_range_has_page()
503 static void __filemap_fdatawait_range(struct address_space *mapping, in __filemap_fdatawait_range() argument
518 nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index, in __filemap_fdatawait_range()
550 int filemap_fdatawait_range(struct address_space *mapping, loff_t start_byte, in filemap_fdatawait_range() argument
553 __filemap_fdatawait_range(mapping, start_byte, end_byte); in filemap_fdatawait_range()
554 return filemap_check_errors(mapping); in filemap_fdatawait_range()
572 int filemap_fdatawait_range_keep_errors(struct address_space *mapping, in filemap_fdatawait_range_keep_errors() argument
575 __filemap_fdatawait_range(mapping, start_byte, end_byte); in filemap_fdatawait_range_keep_errors()
576 return filemap_check_and_keep_errors(mapping); in filemap_fdatawait_range_keep_errors()
598 struct address_space *mapping = file->f_mapping; in file_fdatawait_range() local
600 __filemap_fdatawait_range(mapping, start_byte, end_byte); in file_fdatawait_range()
619 int filemap_fdatawait_keep_errors(struct address_space *mapping) in filemap_fdatawait_keep_errors() argument
621 __filemap_fdatawait_range(mapping, 0, LLONG_MAX); in filemap_fdatawait_keep_errors()
622 return filemap_check_and_keep_errors(mapping); in filemap_fdatawait_keep_errors()
627 static bool mapping_needs_writeback(struct address_space *mapping) in mapping_needs_writeback() argument
629 if (dax_mapping(mapping)) in mapping_needs_writeback()
630 return mapping->nrexceptional; in mapping_needs_writeback()
632 return mapping->nrpages; in mapping_needs_writeback()
635 int filemap_write_and_wait(struct address_space *mapping) in filemap_write_and_wait() argument
639 if (mapping_needs_writeback(mapping)) { in filemap_write_and_wait()
640 err = filemap_fdatawrite(mapping); in filemap_write_and_wait()
648 int err2 = filemap_fdatawait(mapping); in filemap_write_and_wait()
653 filemap_check_errors(mapping); in filemap_write_and_wait()
656 err = filemap_check_errors(mapping); in filemap_write_and_wait()
675 int filemap_write_and_wait_range(struct address_space *mapping, in filemap_write_and_wait_range() argument
680 if (mapping_needs_writeback(mapping)) { in filemap_write_and_wait_range()
681 err = __filemap_fdatawrite_range(mapping, lstart, lend, in filemap_write_and_wait_range()
685 int err2 = filemap_fdatawait_range(mapping, in filemap_write_and_wait_range()
691 filemap_check_errors(mapping); in filemap_write_and_wait_range()
694 err = filemap_check_errors(mapping); in filemap_write_and_wait_range()
700 void __filemap_set_wb_err(struct address_space *mapping, int err) in __filemap_set_wb_err() argument
702 errseq_t eseq = errseq_set(&mapping->wb_err, err); in __filemap_set_wb_err()
704 trace_filemap_set_wb_err(mapping, eseq); in __filemap_set_wb_err()
736 struct address_space *mapping = file->f_mapping; in file_check_and_advance_wb_err() local
739 if (errseq_check(&mapping->wb_err, old)) { in file_check_and_advance_wb_err()
743 err = errseq_check_and_advance(&mapping->wb_err, in file_check_and_advance_wb_err()
754 clear_bit(AS_EIO, &mapping->flags); in file_check_and_advance_wb_err()
755 clear_bit(AS_ENOSPC, &mapping->flags); in file_check_and_advance_wb_err()
779 struct address_space *mapping = file->f_mapping; in file_write_and_wait_range() local
781 if (mapping_needs_writeback(mapping)) { in file_write_and_wait_range()
782 err = __filemap_fdatawrite_range(mapping, lstart, lend, in file_write_and_wait_range()
786 __filemap_fdatawait_range(mapping, lstart, lend); in file_write_and_wait_range()
813 struct address_space *mapping = old->mapping; in replace_page_cache_page() local
814 void (*freepage)(struct page *) = mapping->a_ops->freepage; in replace_page_cache_page()
816 XA_STATE(xas, &mapping->i_pages, offset); in replace_page_cache_page()
821 VM_BUG_ON_PAGE(new->mapping, new); in replace_page_cache_page()
824 new->mapping = mapping; in replace_page_cache_page()
830 old->mapping = NULL; in replace_page_cache_page()
851 struct address_space *mapping, in __add_to_page_cache_locked() argument
855 XA_STATE(xas, &mapping->i_pages, offset); in __add_to_page_cache_locked()
863 mapping_set_update(&xas, mapping); in __add_to_page_cache_locked()
873 page->mapping = mapping; in __add_to_page_cache_locked()
886 mapping->nrexceptional--; in __add_to_page_cache_locked()
890 mapping->nrpages++; in __add_to_page_cache_locked()
907 page->mapping = NULL; in __add_to_page_cache_locked()
928 int add_to_page_cache_locked(struct page *page, struct address_space *mapping, in add_to_page_cache_locked() argument
931 return __add_to_page_cache_locked(page, mapping, offset, in add_to_page_cache_locked()
936 int add_to_page_cache_lru(struct page *page, struct address_space *mapping, in add_to_page_cache_lru() argument
943 ret = __add_to_page_cache_locked(page, mapping, offset, in add_to_page_cache_lru()
1363 struct address_space *mapping; in page_endio() local
1366 mapping = page_mapping(page); in page_endio()
1367 if (mapping) in page_endio()
1368 mapping_set_error(mapping, err); in page_endio()
1459 pgoff_t page_cache_next_miss(struct address_space *mapping, in page_cache_next_miss() argument
1462 XA_STATE(xas, &mapping->i_pages, index); in page_cache_next_miss()
1495 pgoff_t page_cache_prev_miss(struct address_space *mapping, in page_cache_prev_miss() argument
1498 XA_STATE(xas, &mapping->i_pages, index); in page_cache_prev_miss()
1525 struct page *find_get_entry(struct address_space *mapping, pgoff_t offset) in find_get_entry() argument
1527 XA_STATE(xas, &mapping->i_pages, offset); in find_get_entry()
1579 struct page *find_lock_entry(struct address_space *mapping, pgoff_t offset) in find_lock_entry() argument
1584 page = find_get_entry(mapping, offset); in find_lock_entry()
1588 if (unlikely(page_mapping(page) != mapping)) { in find_lock_entry()
1629 struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, in pagecache_get_page() argument
1635 page = find_get_entry(mapping, offset); in pagecache_get_page()
1652 if (unlikely(compound_head(page)->mapping != mapping)) { in pagecache_get_page()
1666 if ((fgp_flags & FGP_WRITE) && mapping_cap_account_dirty(mapping)) in pagecache_get_page()
1682 err = add_to_page_cache_lru(page, mapping, offset, gfp_mask); in pagecache_get_page()
1724 unsigned find_get_entries(struct address_space *mapping, in find_get_entries() argument
1728 XA_STATE(xas, &mapping->i_pages, start); in find_get_entries()
1791 unsigned find_get_pages_range(struct address_space *mapping, pgoff_t *start, in find_get_pages_range() argument
1795 XA_STATE(xas, &mapping->i_pages, *start); in find_get_pages_range()
1857 unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t index, in find_get_pages_contig() argument
1860 XA_STATE(xas, &mapping->i_pages, index); in find_get_pages_contig()
1913 unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index, in find_get_pages_range_tag() argument
1917 XA_STATE(xas, &mapping->i_pages, *index); in find_get_pages_range_tag()
2013 struct address_space *mapping = filp->f_mapping; in generic_file_buffered_read() local
2014 struct inode *inode = mapping->host; in generic_file_buffered_read()
2047 page = find_get_page(mapping, index); in generic_file_buffered_read()
2051 page_cache_sync_readahead(mapping, in generic_file_buffered_read()
2054 page = find_get_page(mapping, index); in generic_file_buffered_read()
2059 page_cache_async_readahead(mapping, in generic_file_buffered_read()
2081 !mapping->a_ops->is_partially_uptodate) in generic_file_buffered_read()
2089 if (!page->mapping) in generic_file_buffered_read()
2091 if (!mapping->a_ops->is_partially_uptodate(page, in generic_file_buffered_read()
2128 if (mapping_writably_mapped(mapping)) in generic_file_buffered_read()
2168 if (!page->mapping) { in generic_file_buffered_read()
2188 error = mapping->a_ops->readpage(filp, page); in generic_file_buffered_read()
2204 if (page->mapping == NULL) { in generic_file_buffered_read()
2232 page = page_cache_alloc(mapping); in generic_file_buffered_read()
2237 error = add_to_page_cache_lru(page, mapping, index, in generic_file_buffered_read()
2238 mapping_gfp_constraint(mapping, GFP_KERNEL)); in generic_file_buffered_read()
2284 struct address_space *mapping = file->f_mapping; in generic_file_read_iter() local
2285 struct inode *inode = mapping->host; in generic_file_read_iter()
2290 if (filemap_range_has_page(mapping, iocb->ki_pos, in generic_file_read_iter()
2294 retval = filemap_write_and_wait_range(mapping, in generic_file_read_iter()
2303 retval = mapping->a_ops->direct_IO(iocb, iter); in generic_file_read_iter()
2387 struct address_space *mapping = file->f_mapping; in do_sync_mmap_readahead() local
2399 page_cache_sync_readahead(mapping, ra, file, offset, in do_sync_mmap_readahead()
2422 ra_submit(ra, mapping, file); in do_sync_mmap_readahead()
2436 struct address_space *mapping = file->f_mapping; in do_async_mmap_readahead() local
2447 page_cache_async_readahead(mapping, ra, file, in do_async_mmap_readahead()
2481 struct address_space *mapping = file->f_mapping; in filemap_fault() local
2483 struct inode *inode = mapping->host; in filemap_fault()
2496 page = find_get_page(mapping, offset); in filemap_fault()
2510 page = pagecache_get_page(mapping, offset, in filemap_fault()
2524 if (unlikely(compound_head(page)->mapping != mapping)) { in filemap_fault()
2571 error = mapping->a_ops->readpage(file, page); in filemap_fault()
2606 struct address_space *mapping = file->f_mapping; in filemap_map_pages() local
2609 XA_STATE(xas, &mapping->i_pages, start_pgoff); in filemap_map_pages()
2640 if (page->mapping != mapping || !PageUptodate(page)) in filemap_map_pages()
2643 max_idx = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE); in filemap_map_pages()
2680 if (page->mapping != inode->i_mapping) { in filemap_page_mkwrite()
2707 struct address_space *mapping = file->f_mapping; in generic_file_mmap() local
2709 if (!mapping->a_ops->readpage) in generic_file_mmap()
2756 static struct page *do_read_cache_page(struct address_space *mapping, in do_read_cache_page() argument
2765 page = find_get_page(mapping, index); in do_read_cache_page()
2770 err = add_to_page_cache_lru(page, mapping, index, gfp); in do_read_cache_page()
2783 err = mapping->a_ops->readpage(data, page); in do_read_cache_page()
2837 if (!page->mapping) { in do_read_cache_page()
2869 struct page *read_cache_page(struct address_space *mapping, in read_cache_page() argument
2874 return do_read_cache_page(mapping, index, filler, data, in read_cache_page()
2875 mapping_gfp_mask(mapping)); in read_cache_page()
2892 struct page *read_cache_page_gfp(struct address_space *mapping, in read_cache_page_gfp() argument
2896 return do_read_cache_page(mapping, index, NULL, NULL, gfp); in read_cache_page_gfp()
3122 int pagecache_write_begin(struct file *file, struct address_space *mapping, in pagecache_write_begin() argument
3126 const struct address_space_operations *aops = mapping->a_ops; in pagecache_write_begin()
3128 return aops->write_begin(file, mapping, pos, len, flags, in pagecache_write_begin()
3133 int pagecache_write_end(struct file *file, struct address_space *mapping, in pagecache_write_end() argument
3137 const struct address_space_operations *aops = mapping->a_ops; in pagecache_write_end()
3139 return aops->write_end(file, mapping, pos, len, copied, page, fsdata); in pagecache_write_end()
3147 struct address_space *mapping = file->f_mapping; in generic_file_direct_write() local
3148 struct inode *inode = mapping->host; in generic_file_direct_write()
3163 written = filemap_write_and_wait_range(mapping, pos, in generic_file_direct_write()
3175 written = invalidate_inode_pages2_range(mapping, in generic_file_direct_write()
3187 written = mapping->a_ops->direct_IO(iocb, from); in generic_file_direct_write()
3202 if (mapping->nrpages) in generic_file_direct_write()
3203 invalidate_inode_pages2_range(mapping, in generic_file_direct_write()
3225 struct page *grab_cache_page_write_begin(struct address_space *mapping, in grab_cache_page_write_begin() argument
3234 page = pagecache_get_page(mapping, index, fgp_flags, in grab_cache_page_write_begin()
3235 mapping_gfp_mask(mapping)); in grab_cache_page_write_begin()
3246 struct address_space *mapping = file->f_mapping; in generic_perform_write() local
3247 const struct address_space_operations *a_ops = mapping->a_ops; in generic_perform_write()
3284 status = a_ops->write_begin(file, mapping, pos, bytes, flags, in generic_perform_write()
3289 if (mapping_writably_mapped(mapping)) in generic_perform_write()
3295 status = a_ops->write_end(file, mapping, pos, bytes, copied, in generic_perform_write()
3320 balance_dirty_pages_ratelimited(mapping); in generic_perform_write()
3351 struct address_space * mapping = file->f_mapping; in __generic_file_write_iter() local
3352 struct inode *inode = mapping->host; in __generic_file_write_iter()
3399 err = filemap_write_and_wait_range(mapping, pos, endbyte); in __generic_file_write_iter()
3403 invalidate_mapping_pages(mapping, in __generic_file_write_iter()
3473 struct address_space * const mapping = page->mapping; in try_to_release_page() local
3479 if (mapping && mapping->a_ops->releasepage) in try_to_release_page()
3480 return mapping->a_ops->releasepage(page, gfp_mask); in try_to_release_page()