Lines Matching refs:mapping
114 static int page_cache_tree_insert(struct address_space *mapping, in page_cache_tree_insert() argument
121 error = __radix_tree_create(&mapping->i_pages, page->index, 0, in page_cache_tree_insert()
129 &mapping->i_pages.xa_lock); in page_cache_tree_insert()
133 mapping->nrexceptional--; in page_cache_tree_insert()
137 __radix_tree_replace(&mapping->i_pages, node, slot, page, in page_cache_tree_insert()
138 workingset_lookup_update(mapping)); in page_cache_tree_insert()
139 mapping->nrpages++; in page_cache_tree_insert()
143 static void page_cache_tree_delete(struct address_space *mapping, in page_cache_tree_delete() argument
159 __radix_tree_lookup(&mapping->i_pages, page->index + i, in page_cache_tree_delete()
164 radix_tree_clear_tags(&mapping->i_pages, node, slot); in page_cache_tree_delete()
165 __radix_tree_replace(&mapping->i_pages, node, slot, shadow, in page_cache_tree_delete()
166 workingset_lookup_update(mapping)); in page_cache_tree_delete()
169 page->mapping = NULL; in page_cache_tree_delete()
173 mapping->nrexceptional += nr; in page_cache_tree_delete()
182 mapping->nrpages -= nr; in page_cache_tree_delete()
185 static void unaccount_page_cache_page(struct address_space *mapping, in unaccount_page_cache_page() argument
198 cleancache_invalidate_page(mapping, page); in unaccount_page_cache_page()
212 if (mapping_exiting(mapping) && in unaccount_page_cache_page()
251 account_page_cleaned(page, mapping, inode_to_wb(mapping->host)); in unaccount_page_cache_page()
261 struct address_space *mapping = page->mapping; in __delete_from_page_cache() local
265 unaccount_page_cache_page(mapping, page); in __delete_from_page_cache()
266 page_cache_tree_delete(mapping, page, shadow); in __delete_from_page_cache()
269 static void page_cache_free_page(struct address_space *mapping, in page_cache_free_page() argument
274 freepage = mapping->a_ops->freepage; in page_cache_free_page()
296 struct address_space *mapping = page_mapping(page); in delete_from_page_cache() local
300 xa_lock_irqsave(&mapping->i_pages, flags); in delete_from_page_cache()
302 xa_unlock_irqrestore(&mapping->i_pages, flags); in delete_from_page_cache()
304 page_cache_free_page(mapping, page); in delete_from_page_cache()
323 page_cache_tree_delete_batch(struct address_space *mapping, in page_cache_tree_delete_batch() argument
334 radix_tree_for_each_slot(slot, &mapping->i_pages, &iter, start) { in page_cache_tree_delete_batch()
338 &mapping->i_pages.xa_lock); in page_cache_tree_delete_batch()
352 page->mapping = NULL; in page_cache_tree_delete_batch()
361 radix_tree_clear_tags(&mapping->i_pages, iter.node, slot); in page_cache_tree_delete_batch()
362 __radix_tree_replace(&mapping->i_pages, iter.node, slot, NULL, in page_cache_tree_delete_batch()
363 workingset_lookup_update(mapping)); in page_cache_tree_delete_batch()
366 mapping->nrpages -= total_pages; in page_cache_tree_delete_batch()
369 void delete_from_page_cache_batch(struct address_space *mapping, in delete_from_page_cache_batch() argument
378 xa_lock_irqsave(&mapping->i_pages, flags); in delete_from_page_cache_batch()
382 unaccount_page_cache_page(mapping, pvec->pages[i]); in delete_from_page_cache_batch()
384 page_cache_tree_delete_batch(mapping, pvec); in delete_from_page_cache_batch()
385 xa_unlock_irqrestore(&mapping->i_pages, flags); in delete_from_page_cache_batch()
388 page_cache_free_page(mapping, pvec->pages[i]); in delete_from_page_cache_batch()
391 int filemap_check_errors(struct address_space *mapping) in filemap_check_errors() argument
395 if (test_bit(AS_ENOSPC, &mapping->flags) && in filemap_check_errors()
396 test_and_clear_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_errors()
398 if (test_bit(AS_EIO, &mapping->flags) && in filemap_check_errors()
399 test_and_clear_bit(AS_EIO, &mapping->flags)) in filemap_check_errors()
405 static int filemap_check_and_keep_errors(struct address_space *mapping) in filemap_check_and_keep_errors() argument
408 if (test_bit(AS_EIO, &mapping->flags)) in filemap_check_and_keep_errors()
410 if (test_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_and_keep_errors()
430 int __filemap_fdatawrite_range(struct address_space *mapping, loff_t start, in __filemap_fdatawrite_range() argument
441 if (!mapping_cap_writeback_dirty(mapping)) in __filemap_fdatawrite_range()
444 wbc_attach_fdatawrite_inode(&wbc, mapping->host); in __filemap_fdatawrite_range()
445 ret = do_writepages(mapping, &wbc); in __filemap_fdatawrite_range()
450 static inline int __filemap_fdatawrite(struct address_space *mapping, in __filemap_fdatawrite() argument
453 return __filemap_fdatawrite_range(mapping, 0, LLONG_MAX, sync_mode); in __filemap_fdatawrite()
456 int filemap_fdatawrite(struct address_space *mapping) in filemap_fdatawrite() argument
458 return __filemap_fdatawrite(mapping, WB_SYNC_ALL); in filemap_fdatawrite()
462 int filemap_fdatawrite_range(struct address_space *mapping, loff_t start, in filemap_fdatawrite_range() argument
465 return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_ALL); in filemap_fdatawrite_range()
476 int filemap_flush(struct address_space *mapping) in filemap_flush() argument
478 return __filemap_fdatawrite(mapping, WB_SYNC_NONE); in filemap_flush()
491 bool filemap_range_has_page(struct address_space *mapping, in filemap_range_has_page() argument
501 if (mapping->nrpages == 0) in filemap_range_has_page()
504 if (!find_get_pages_range(mapping, &index, end, 1, &page)) in filemap_range_has_page()
511 static void __filemap_fdatawait_range(struct address_space *mapping, in __filemap_fdatawait_range() argument
526 nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index, in __filemap_fdatawait_range()
556 int filemap_fdatawait_range(struct address_space *mapping, loff_t start_byte, in filemap_fdatawait_range() argument
559 __filemap_fdatawait_range(mapping, start_byte, end_byte); in filemap_fdatawait_range()
560 return filemap_check_errors(mapping); in filemap_fdatawait_range()
580 struct address_space *mapping = file->f_mapping; in file_fdatawait_range() local
582 __filemap_fdatawait_range(mapping, start_byte, end_byte); in file_fdatawait_range()
599 int filemap_fdatawait_keep_errors(struct address_space *mapping) in filemap_fdatawait_keep_errors() argument
601 __filemap_fdatawait_range(mapping, 0, LLONG_MAX); in filemap_fdatawait_keep_errors()
602 return filemap_check_and_keep_errors(mapping); in filemap_fdatawait_keep_errors()
606 static bool mapping_needs_writeback(struct address_space *mapping) in mapping_needs_writeback() argument
608 return (!dax_mapping(mapping) && mapping->nrpages) || in mapping_needs_writeback()
609 (dax_mapping(mapping) && mapping->nrexceptional); in mapping_needs_writeback()
612 int filemap_write_and_wait(struct address_space *mapping) in filemap_write_and_wait() argument
616 if (mapping_needs_writeback(mapping)) { in filemap_write_and_wait()
617 err = filemap_fdatawrite(mapping); in filemap_write_and_wait()
625 int err2 = filemap_fdatawait(mapping); in filemap_write_and_wait()
630 filemap_check_errors(mapping); in filemap_write_and_wait()
633 err = filemap_check_errors(mapping); in filemap_write_and_wait()
650 int filemap_write_and_wait_range(struct address_space *mapping, in filemap_write_and_wait_range() argument
655 if (mapping_needs_writeback(mapping)) { in filemap_write_and_wait_range()
656 err = __filemap_fdatawrite_range(mapping, lstart, lend, in filemap_write_and_wait_range()
660 int err2 = filemap_fdatawait_range(mapping, in filemap_write_and_wait_range()
666 filemap_check_errors(mapping); in filemap_write_and_wait_range()
669 err = filemap_check_errors(mapping); in filemap_write_and_wait_range()
675 void __filemap_set_wb_err(struct address_space *mapping, int err) in __filemap_set_wb_err() argument
677 errseq_t eseq = errseq_set(&mapping->wb_err, err); in __filemap_set_wb_err()
679 trace_filemap_set_wb_err(mapping, eseq); in __filemap_set_wb_err()
709 struct address_space *mapping = file->f_mapping; in file_check_and_advance_wb_err() local
712 if (errseq_check(&mapping->wb_err, old)) { in file_check_and_advance_wb_err()
716 err = errseq_check_and_advance(&mapping->wb_err, in file_check_and_advance_wb_err()
727 clear_bit(AS_EIO, &mapping->flags); in file_check_and_advance_wb_err()
728 clear_bit(AS_ENOSPC, &mapping->flags); in file_check_and_advance_wb_err()
750 struct address_space *mapping = file->f_mapping; in file_write_and_wait_range() local
752 if (mapping_needs_writeback(mapping)) { in file_write_and_wait_range()
753 err = __filemap_fdatawrite_range(mapping, lstart, lend, in file_write_and_wait_range()
757 __filemap_fdatawait_range(mapping, lstart, lend); in file_write_and_wait_range()
787 VM_BUG_ON_PAGE(new->mapping, new); in replace_page_cache_page()
791 struct address_space *mapping = old->mapping; in replace_page_cache_page() local
796 freepage = mapping->a_ops->freepage; in replace_page_cache_page()
799 new->mapping = mapping; in replace_page_cache_page()
802 xa_lock_irqsave(&mapping->i_pages, flags); in replace_page_cache_page()
804 error = page_cache_tree_insert(mapping, new, NULL); in replace_page_cache_page()
814 xa_unlock_irqrestore(&mapping->i_pages, flags); in replace_page_cache_page()
827 struct address_space *mapping, in __add_to_page_cache_locked() argument
853 page->mapping = mapping; in __add_to_page_cache_locked()
856 xa_lock_irq(&mapping->i_pages); in __add_to_page_cache_locked()
857 error = page_cache_tree_insert(mapping, page, shadowp); in __add_to_page_cache_locked()
865 xa_unlock_irq(&mapping->i_pages); in __add_to_page_cache_locked()
871 page->mapping = NULL; in __add_to_page_cache_locked()
873 xa_unlock_irq(&mapping->i_pages); in __add_to_page_cache_locked()
890 int add_to_page_cache_locked(struct page *page, struct address_space *mapping, in add_to_page_cache_locked() argument
893 return __add_to_page_cache_locked(page, mapping, offset, in add_to_page_cache_locked()
898 int add_to_page_cache_lru(struct page *page, struct address_space *mapping, in add_to_page_cache_lru() argument
905 ret = __add_to_page_cache_locked(page, mapping, offset, in add_to_page_cache_lru()
1253 struct address_space *mapping; in page_endio() local
1256 mapping = page_mapping(page); in page_endio()
1257 if (mapping) in page_endio()
1258 mapping_set_error(mapping, err); in page_endio()
1349 pgoff_t page_cache_next_hole(struct address_space *mapping, in page_cache_next_hole() argument
1357 page = radix_tree_lookup(&mapping->i_pages, index); in page_cache_next_hole()
1390 pgoff_t page_cache_prev_hole(struct address_space *mapping, in page_cache_prev_hole() argument
1398 page = radix_tree_lookup(&mapping->i_pages, index); in page_cache_prev_hole()
1423 struct page *find_get_entry(struct address_space *mapping, pgoff_t offset) in find_get_entry() argument
1431 pagep = radix_tree_lookup_slot(&mapping->i_pages, offset); in find_get_entry()
1490 struct page *find_lock_entry(struct address_space *mapping, pgoff_t offset) in find_lock_entry() argument
1495 page = find_get_entry(mapping, offset); in find_lock_entry()
1499 if (unlikely(page_mapping(page) != mapping)) { in find_lock_entry()
1535 struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, in pagecache_get_page() argument
1541 page = find_get_entry(mapping, offset); in pagecache_get_page()
1558 if (unlikely(page->mapping != mapping)) { in pagecache_get_page()
1572 if ((fgp_flags & FGP_WRITE) && mapping_cap_account_dirty(mapping)) in pagecache_get_page()
1588 err = add_to_page_cache_lru(page, mapping, offset, gfp_mask); in pagecache_get_page()
1624 unsigned find_get_entries(struct address_space *mapping, in find_get_entries() argument
1636 radix_tree_for_each_slot(slot, &mapping->i_pages, &iter, start) { in find_get_entries()
1701 unsigned find_get_pages_range(struct address_space *mapping, pgoff_t *start, in find_get_pages_range() argument
1713 radix_tree_for_each_slot(slot, &mapping->i_pages, &iter, *start) { in find_get_pages_range()
1787 unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t index, in find_get_pages_contig() argument
1798 radix_tree_for_each_contig(slot, &mapping->i_pages, &iter, index) { in find_get_pages_contig()
1840 if (page->mapping == NULL || page_to_pgoff(page) != iter.index) { in find_get_pages_contig()
1866 unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index, in find_get_pages_range_tag() argument
1878 radix_tree_for_each_tagged(slot, &mapping->i_pages, &iter, *index, tag) { in find_get_pages_range_tag()
1959 unsigned find_get_entries_tag(struct address_space *mapping, pgoff_t start, in find_get_entries_tag() argument
1971 radix_tree_for_each_tagged(slot, &mapping->i_pages, &iter, start, tag) { in find_get_entries_tag()
2054 struct address_space *mapping = filp->f_mapping; in generic_file_buffered_read() local
2055 struct inode *inode = mapping->host; in generic_file_buffered_read()
2088 page = find_get_page(mapping, index); in generic_file_buffered_read()
2092 page_cache_sync_readahead(mapping, in generic_file_buffered_read()
2095 page = find_get_page(mapping, index); in generic_file_buffered_read()
2100 page_cache_async_readahead(mapping, in generic_file_buffered_read()
2122 !mapping->a_ops->is_partially_uptodate) in generic_file_buffered_read()
2130 if (!page->mapping) in generic_file_buffered_read()
2132 if (!mapping->a_ops->is_partially_uptodate(page, in generic_file_buffered_read()
2169 if (mapping_writably_mapped(mapping)) in generic_file_buffered_read()
2209 if (!page->mapping) { in generic_file_buffered_read()
2229 error = mapping->a_ops->readpage(filp, page); in generic_file_buffered_read()
2245 if (page->mapping == NULL) { in generic_file_buffered_read()
2273 page = page_cache_alloc(mapping); in generic_file_buffered_read()
2278 error = add_to_page_cache_lru(page, mapping, index, in generic_file_buffered_read()
2279 mapping_gfp_constraint(mapping, GFP_KERNEL)); in generic_file_buffered_read()
2322 struct address_space *mapping = file->f_mapping; in generic_file_read_iter() local
2323 struct inode *inode = mapping->host; in generic_file_read_iter()
2328 if (filemap_range_has_page(mapping, iocb->ki_pos, in generic_file_read_iter()
2332 retval = filemap_write_and_wait_range(mapping, in generic_file_read_iter()
2341 retval = mapping->a_ops->direct_IO(iocb, iter); in generic_file_read_iter()
2380 struct address_space *mapping = file->f_mapping; in page_cache_read() local
2389 ret = add_to_page_cache_lru(page, mapping, offset, gfp_mask); in page_cache_read()
2391 ret = mapping->a_ops->readpage(file, page); in page_cache_read()
2413 struct address_space *mapping = file->f_mapping; in do_sync_mmap_readahead() local
2422 page_cache_sync_readahead(mapping, ra, file, offset, in do_sync_mmap_readahead()
2444 ra_submit(ra, mapping, file); in do_sync_mmap_readahead()
2457 struct address_space *mapping = file->f_mapping; in do_async_mmap_readahead() local
2465 page_cache_async_readahead(mapping, ra, file, in do_async_mmap_readahead()
2496 struct address_space *mapping = file->f_mapping; in filemap_fault() local
2498 struct inode *inode = mapping->host; in filemap_fault()
2511 page = find_get_page(mapping, offset); in filemap_fault()
2525 page = find_get_page(mapping, offset); in filemap_fault()
2536 if (unlikely(page->mapping != mapping)) { in filemap_fault()
2596 error = mapping->a_ops->readpage(file, page); in filemap_fault()
2619 struct address_space *mapping = file->f_mapping; in filemap_map_pages() local
2625 radix_tree_for_each_slot(slot, &mapping->i_pages, &iter, start_pgoff) { in filemap_map_pages()
2663 if (page->mapping != mapping || !PageUptodate(page)) in filemap_map_pages()
2666 max_idx = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE); in filemap_map_pages()
2705 if (page->mapping != inode->i_mapping) { in filemap_page_mkwrite()
2732 struct address_space *mapping = file->f_mapping; in generic_file_mmap() local
2734 if (!mapping->a_ops->readpage) in generic_file_mmap()
2781 static struct page *do_read_cache_page(struct address_space *mapping, in do_read_cache_page() argument
2790 page = find_get_page(mapping, index); in do_read_cache_page()
2795 err = add_to_page_cache_lru(page, mapping, index, gfp); in do_read_cache_page()
2858 if (!page->mapping) { in do_read_cache_page()
2888 struct page *read_cache_page(struct address_space *mapping, in read_cache_page() argument
2893 return do_read_cache_page(mapping, index, filler, data, mapping_gfp_mask(mapping)); in read_cache_page()
2908 struct page *read_cache_page_gfp(struct address_space *mapping, in read_cache_page_gfp() argument
2912 filler_t *filler = (filler_t *)mapping->a_ops->readpage; in read_cache_page_gfp()
2914 return do_read_cache_page(mapping, index, filler, NULL, gfp); in read_cache_page_gfp()
2977 int pagecache_write_begin(struct file *file, struct address_space *mapping, in pagecache_write_begin() argument
2981 const struct address_space_operations *aops = mapping->a_ops; in pagecache_write_begin()
2983 return aops->write_begin(file, mapping, pos, len, flags, in pagecache_write_begin()
2988 int pagecache_write_end(struct file *file, struct address_space *mapping, in pagecache_write_end() argument
2992 const struct address_space_operations *aops = mapping->a_ops; in pagecache_write_end()
2994 return aops->write_end(file, mapping, pos, len, copied, page, fsdata); in pagecache_write_end()
3002 struct address_space *mapping = file->f_mapping; in generic_file_direct_write() local
3003 struct inode *inode = mapping->host; in generic_file_direct_write()
3018 written = filemap_write_and_wait_range(mapping, pos, in generic_file_direct_write()
3030 written = invalidate_inode_pages2_range(mapping, in generic_file_direct_write()
3042 written = mapping->a_ops->direct_IO(iocb, from); in generic_file_direct_write()
3057 if (mapping->nrpages) in generic_file_direct_write()
3058 invalidate_inode_pages2_range(mapping, in generic_file_direct_write()
3080 struct page *grab_cache_page_write_begin(struct address_space *mapping, in grab_cache_page_write_begin() argument
3089 page = pagecache_get_page(mapping, index, fgp_flags, in grab_cache_page_write_begin()
3090 mapping_gfp_mask(mapping)); in grab_cache_page_write_begin()
3101 struct address_space *mapping = file->f_mapping; in generic_perform_write() local
3102 const struct address_space_operations *a_ops = mapping->a_ops; in generic_perform_write()
3139 status = a_ops->write_begin(file, mapping, pos, bytes, flags, in generic_perform_write()
3144 if (mapping_writably_mapped(mapping)) in generic_perform_write()
3150 status = a_ops->write_end(file, mapping, pos, bytes, copied, in generic_perform_write()
3175 balance_dirty_pages_ratelimited(mapping); in generic_perform_write()
3202 struct address_space * mapping = file->f_mapping; in __generic_file_write_iter() local
3203 struct inode *inode = mapping->host; in __generic_file_write_iter()
3250 err = filemap_write_and_wait_range(mapping, pos, endbyte); in __generic_file_write_iter()
3254 invalidate_mapping_pages(mapping, in __generic_file_write_iter()
3320 struct address_space * const mapping = page->mapping; in try_to_release_page() local
3326 if (mapping && mapping->a_ops->releasepage) in try_to_release_page()
3327 return mapping->a_ops->releasepage(page, gfp_mask); in try_to_release_page()