Lines Matching refs:mapping
116 static int page_cache_tree_insert(struct address_space *mapping, in page_cache_tree_insert() argument
123 error = __radix_tree_create(&mapping->page_tree, page->index, 0, in page_cache_tree_insert()
130 p = radix_tree_deref_slot_protected(slot, &mapping->tree_lock); in page_cache_tree_insert()
134 mapping->nrexceptional--; in page_cache_tree_insert()
138 __radix_tree_replace(&mapping->page_tree, node, slot, page, in page_cache_tree_insert()
139 workingset_update_node, mapping); in page_cache_tree_insert()
140 mapping->nrpages++; in page_cache_tree_insert()
144 static void page_cache_tree_delete(struct address_space *mapping, in page_cache_tree_delete() argument
160 __radix_tree_lookup(&mapping->page_tree, page->index + i, in page_cache_tree_delete()
165 radix_tree_clear_tags(&mapping->page_tree, node, slot); in page_cache_tree_delete()
166 __radix_tree_replace(&mapping->page_tree, node, slot, shadow, in page_cache_tree_delete()
167 workingset_update_node, mapping); in page_cache_tree_delete()
171 mapping->nrexceptional += nr; in page_cache_tree_delete()
180 mapping->nrpages -= nr; in page_cache_tree_delete()
190 struct address_space *mapping = page->mapping; in __delete_from_page_cache() local
202 cleancache_invalidate_page(mapping, page); in __delete_from_page_cache()
216 if (mapping_exiting(mapping) && in __delete_from_page_cache()
229 page_cache_tree_delete(mapping, page, shadow); in __delete_from_page_cache()
231 page->mapping = NULL; in __delete_from_page_cache()
256 account_page_cleaned(page, mapping, inode_to_wb(mapping->host)); in __delete_from_page_cache()
269 struct address_space *mapping = page_mapping(page); in delete_from_page_cache() local
275 freepage = mapping->a_ops->freepage; in delete_from_page_cache()
277 spin_lock_irqsave(&mapping->tree_lock, flags); in delete_from_page_cache()
279 spin_unlock_irqrestore(&mapping->tree_lock, flags); in delete_from_page_cache()
293 int filemap_check_errors(struct address_space *mapping) in filemap_check_errors() argument
297 if (test_bit(AS_ENOSPC, &mapping->flags) && in filemap_check_errors()
298 test_and_clear_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_errors()
300 if (test_bit(AS_EIO, &mapping->flags) && in filemap_check_errors()
301 test_and_clear_bit(AS_EIO, &mapping->flags)) in filemap_check_errors()
307 static int filemap_check_and_keep_errors(struct address_space *mapping) in filemap_check_and_keep_errors() argument
310 if (test_bit(AS_EIO, &mapping->flags)) in filemap_check_and_keep_errors()
312 if (test_bit(AS_ENOSPC, &mapping->flags)) in filemap_check_and_keep_errors()
332 int __filemap_fdatawrite_range(struct address_space *mapping, loff_t start, in __filemap_fdatawrite_range() argument
343 if (!mapping_cap_writeback_dirty(mapping) || in __filemap_fdatawrite_range()
344 !mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) in __filemap_fdatawrite_range()
347 wbc_attach_fdatawrite_inode(&wbc, mapping->host); in __filemap_fdatawrite_range()
348 ret = do_writepages(mapping, &wbc); in __filemap_fdatawrite_range()
353 static inline int __filemap_fdatawrite(struct address_space *mapping, in __filemap_fdatawrite() argument
356 return __filemap_fdatawrite_range(mapping, 0, LLONG_MAX, sync_mode); in __filemap_fdatawrite()
359 int filemap_fdatawrite(struct address_space *mapping) in filemap_fdatawrite() argument
361 return __filemap_fdatawrite(mapping, WB_SYNC_ALL); in filemap_fdatawrite()
365 int filemap_fdatawrite_range(struct address_space *mapping, loff_t start, in filemap_fdatawrite_range() argument
368 return __filemap_fdatawrite_range(mapping, start, end, WB_SYNC_ALL); in filemap_fdatawrite_range()
379 int filemap_flush(struct address_space *mapping) in filemap_flush() argument
381 return __filemap_fdatawrite(mapping, WB_SYNC_NONE); in filemap_flush()
394 bool filemap_range_has_page(struct address_space *mapping, in filemap_range_has_page() argument
404 if (mapping->nrpages == 0) in filemap_range_has_page()
407 if (!find_get_pages_range(mapping, &index, end, 1, &page)) in filemap_range_has_page()
414 static void __filemap_fdatawait_range(struct address_space *mapping, in __filemap_fdatawait_range() argument
429 nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index, in __filemap_fdatawait_range()
459 int filemap_fdatawait_range(struct address_space *mapping, loff_t start_byte, in filemap_fdatawait_range() argument
462 __filemap_fdatawait_range(mapping, start_byte, end_byte); in filemap_fdatawait_range()
463 return filemap_check_errors(mapping); in filemap_fdatawait_range()
481 int filemap_fdatawait_range_keep_errors(struct address_space *mapping, in filemap_fdatawait_range_keep_errors() argument
484 __filemap_fdatawait_range(mapping, start_byte, end_byte); in filemap_fdatawait_range_keep_errors()
485 return filemap_check_and_keep_errors(mapping); in filemap_fdatawait_range_keep_errors()
505 struct address_space *mapping = file->f_mapping; in file_fdatawait_range() local
507 __filemap_fdatawait_range(mapping, start_byte, end_byte); in file_fdatawait_range()
524 int filemap_fdatawait_keep_errors(struct address_space *mapping) in filemap_fdatawait_keep_errors() argument
526 __filemap_fdatawait_range(mapping, 0, LLONG_MAX); in filemap_fdatawait_keep_errors()
527 return filemap_check_and_keep_errors(mapping); in filemap_fdatawait_keep_errors()
531 static bool mapping_needs_writeback(struct address_space *mapping) in mapping_needs_writeback() argument
533 return (!dax_mapping(mapping) && mapping->nrpages) || in mapping_needs_writeback()
534 (dax_mapping(mapping) && mapping->nrexceptional); in mapping_needs_writeback()
537 int filemap_write_and_wait(struct address_space *mapping) in filemap_write_and_wait() argument
541 if (mapping_needs_writeback(mapping)) { in filemap_write_and_wait()
542 err = filemap_fdatawrite(mapping); in filemap_write_and_wait()
550 int err2 = filemap_fdatawait(mapping); in filemap_write_and_wait()
555 filemap_check_errors(mapping); in filemap_write_and_wait()
558 err = filemap_check_errors(mapping); in filemap_write_and_wait()
575 int filemap_write_and_wait_range(struct address_space *mapping, in filemap_write_and_wait_range() argument
580 if (mapping_needs_writeback(mapping)) { in filemap_write_and_wait_range()
581 err = __filemap_fdatawrite_range(mapping, lstart, lend, in filemap_write_and_wait_range()
585 int err2 = filemap_fdatawait_range(mapping, in filemap_write_and_wait_range()
591 filemap_check_errors(mapping); in filemap_write_and_wait_range()
594 err = filemap_check_errors(mapping); in filemap_write_and_wait_range()
600 void __filemap_set_wb_err(struct address_space *mapping, int err) in __filemap_set_wb_err() argument
602 errseq_t eseq = errseq_set(&mapping->wb_err, err); in __filemap_set_wb_err()
604 trace_filemap_set_wb_err(mapping, eseq); in __filemap_set_wb_err()
634 struct address_space *mapping = file->f_mapping; in file_check_and_advance_wb_err() local
637 if (errseq_check(&mapping->wb_err, old)) { in file_check_and_advance_wb_err()
641 err = errseq_check_and_advance(&mapping->wb_err, in file_check_and_advance_wb_err()
652 clear_bit(AS_EIO, &mapping->flags); in file_check_and_advance_wb_err()
653 clear_bit(AS_ENOSPC, &mapping->flags); in file_check_and_advance_wb_err()
675 struct address_space *mapping = file->f_mapping; in file_write_and_wait_range() local
677 if (mapping_needs_writeback(mapping)) { in file_write_and_wait_range()
678 err = __filemap_fdatawrite_range(mapping, lstart, lend, in file_write_and_wait_range()
682 __filemap_fdatawait_range(mapping, lstart, lend); in file_write_and_wait_range()
712 VM_BUG_ON_PAGE(new->mapping, new); in replace_page_cache_page()
716 struct address_space *mapping = old->mapping; in replace_page_cache_page() local
721 freepage = mapping->a_ops->freepage; in replace_page_cache_page()
724 new->mapping = mapping; in replace_page_cache_page()
727 spin_lock_irqsave(&mapping->tree_lock, flags); in replace_page_cache_page()
729 error = page_cache_tree_insert(mapping, new, NULL); in replace_page_cache_page()
739 spin_unlock_irqrestore(&mapping->tree_lock, flags); in replace_page_cache_page()
752 struct address_space *mapping, in __add_to_page_cache_locked() argument
778 page->mapping = mapping; in __add_to_page_cache_locked()
781 spin_lock_irq(&mapping->tree_lock); in __add_to_page_cache_locked()
782 error = page_cache_tree_insert(mapping, page, shadowp); in __add_to_page_cache_locked()
790 spin_unlock_irq(&mapping->tree_lock); in __add_to_page_cache_locked()
796 page->mapping = NULL; in __add_to_page_cache_locked()
798 spin_unlock_irq(&mapping->tree_lock); in __add_to_page_cache_locked()
815 int add_to_page_cache_locked(struct page *page, struct address_space *mapping, in add_to_page_cache_locked() argument
818 return __add_to_page_cache_locked(page, mapping, offset, in add_to_page_cache_locked()
823 int add_to_page_cache_lru(struct page *page, struct address_space *mapping, in add_to_page_cache_lru() argument
830 ret = __add_to_page_cache_locked(page, mapping, offset, in add_to_page_cache_lru()
1190 struct address_space *mapping; in page_endio() local
1193 mapping = page_mapping(page); in page_endio()
1194 if (mapping) in page_endio()
1195 mapping_set_error(mapping, err); in page_endio()
1286 pgoff_t page_cache_next_hole(struct address_space *mapping, in page_cache_next_hole() argument
1294 page = radix_tree_lookup(&mapping->page_tree, index); in page_cache_next_hole()
1327 pgoff_t page_cache_prev_hole(struct address_space *mapping, in page_cache_prev_hole() argument
1335 page = radix_tree_lookup(&mapping->page_tree, index); in page_cache_prev_hole()
1360 struct page *find_get_entry(struct address_space *mapping, pgoff_t offset) in find_get_entry() argument
1368 pagep = radix_tree_lookup_slot(&mapping->page_tree, offset); in find_get_entry()
1427 struct page *find_lock_entry(struct address_space *mapping, pgoff_t offset) in find_lock_entry() argument
1432 page = find_get_entry(mapping, offset); in find_lock_entry()
1436 if (unlikely(page_mapping(page) != mapping)) { in find_lock_entry()
1475 struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset, in pagecache_get_page() argument
1481 page = find_get_entry(mapping, offset); in pagecache_get_page()
1498 if (unlikely(page->mapping != mapping)) { in pagecache_get_page()
1512 if ((fgp_flags & FGP_WRITE) && mapping_cap_account_dirty(mapping)) in pagecache_get_page()
1528 err = add_to_page_cache_lru(page, mapping, offset, gfp_mask); in pagecache_get_page()
1571 unsigned find_get_entries(struct address_space *mapping, in find_get_entries() argument
1583 radix_tree_for_each_slot(slot, &mapping->page_tree, &iter, start) { in find_get_entries()
1648 unsigned find_get_pages_range(struct address_space *mapping, pgoff_t *start, in find_get_pages_range() argument
1660 radix_tree_for_each_slot(slot, &mapping->page_tree, &iter, *start) { in find_get_pages_range()
1734 unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t index, in find_get_pages_contig() argument
1745 radix_tree_for_each_contig(slot, &mapping->page_tree, &iter, index) { in find_get_pages_contig()
1787 if (page->mapping == NULL || page_to_pgoff(page) != iter.index) { in find_get_pages_contig()
1813 unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index, in find_get_pages_range_tag() argument
1825 radix_tree_for_each_tagged(slot, &mapping->page_tree, in find_get_pages_range_tag()
1907 unsigned find_get_entries_tag(struct address_space *mapping, pgoff_t start, in find_get_entries_tag() argument
1919 radix_tree_for_each_tagged(slot, &mapping->page_tree, in find_get_entries_tag()
2003 struct address_space *mapping = filp->f_mapping; in generic_file_buffered_read() local
2004 struct inode *inode = mapping->host; in generic_file_buffered_read()
2037 page = find_get_page(mapping, index); in generic_file_buffered_read()
2041 page_cache_sync_readahead(mapping, in generic_file_buffered_read()
2044 page = find_get_page(mapping, index); in generic_file_buffered_read()
2049 page_cache_async_readahead(mapping, in generic_file_buffered_read()
2071 !mapping->a_ops->is_partially_uptodate) in generic_file_buffered_read()
2079 if (!page->mapping) in generic_file_buffered_read()
2081 if (!mapping->a_ops->is_partially_uptodate(page, in generic_file_buffered_read()
2118 if (mapping_writably_mapped(mapping)) in generic_file_buffered_read()
2158 if (!page->mapping) { in generic_file_buffered_read()
2178 error = mapping->a_ops->readpage(filp, page); in generic_file_buffered_read()
2194 if (page->mapping == NULL) { in generic_file_buffered_read()
2222 page = page_cache_alloc_cold(mapping); in generic_file_buffered_read()
2227 error = add_to_page_cache_lru(page, mapping, index, in generic_file_buffered_read()
2228 mapping_gfp_constraint(mapping, GFP_KERNEL)); in generic_file_buffered_read()
2271 struct address_space *mapping = file->f_mapping; in generic_file_read_iter() local
2272 struct inode *inode = mapping->host; in generic_file_read_iter()
2277 if (filemap_range_has_page(mapping, iocb->ki_pos, in generic_file_read_iter()
2281 retval = filemap_write_and_wait_range(mapping, in generic_file_read_iter()
2290 retval = mapping->a_ops->direct_IO(iocb, iter); in generic_file_read_iter()
2395 struct address_space *mapping = file->f_mapping; in do_sync_mmap_readahead() local
2407 page_cache_sync_readahead(mapping, ra, file, offset, in do_sync_mmap_readahead()
2430 ra_submit(ra, mapping, file); in do_sync_mmap_readahead()
2444 struct address_space *mapping = file->f_mapping; in do_async_mmap_readahead() local
2455 page_cache_async_readahead(mapping, ra, file, in do_async_mmap_readahead()
2489 struct address_space *mapping = file->f_mapping; in filemap_fault() local
2491 struct inode *inode = mapping->host; in filemap_fault()
2504 page = find_get_page(mapping, offset); in filemap_fault()
2518 page = pagecache_get_page(mapping, offset, in filemap_fault()
2532 if (unlikely(page->mapping != mapping)) { in filemap_fault()
2579 error = mapping->a_ops->readpage(file, page); in filemap_fault()
2616 struct address_space *mapping = file->f_mapping; in filemap_map_pages() local
2622 radix_tree_for_each_slot(slot, &mapping->page_tree, &iter, in filemap_map_pages()
2661 if (page->mapping != mapping || !PageUptodate(page)) in filemap_map_pages()
2664 max_idx = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE); in filemap_map_pages()
2703 if (page->mapping != inode->i_mapping) { in filemap_page_mkwrite()
2731 struct address_space *mapping = file->f_mapping; in generic_file_mmap() local
2733 if (!mapping->a_ops->readpage) in generic_file_mmap()
2775 static struct page *do_read_cache_page(struct address_space *mapping, in do_read_cache_page() argument
2784 page = find_get_page(mapping, index); in do_read_cache_page()
2789 err = add_to_page_cache_lru(page, mapping, index, gfp); in do_read_cache_page()
2852 if (!page->mapping) { in do_read_cache_page()
2882 struct page *read_cache_page(struct address_space *mapping, in read_cache_page() argument
2887 return do_read_cache_page(mapping, index, filler, data, mapping_gfp_mask(mapping)); in read_cache_page()
2902 struct page *read_cache_page_gfp(struct address_space *mapping, in read_cache_page_gfp() argument
2906 filler_t *filler = mapping->a_ops->readpage; in read_cache_page_gfp()
2908 return do_read_cache_page(mapping, index, filler, NULL, gfp); in read_cache_page_gfp()
2971 int pagecache_write_begin(struct file *file, struct address_space *mapping, in pagecache_write_begin() argument
2975 const struct address_space_operations *aops = mapping->a_ops; in pagecache_write_begin()
2977 return aops->write_begin(file, mapping, pos, len, flags, in pagecache_write_begin()
2982 int pagecache_write_end(struct file *file, struct address_space *mapping, in pagecache_write_end() argument
2986 const struct address_space_operations *aops = mapping->a_ops; in pagecache_write_end()
2988 return aops->write_end(file, mapping, pos, len, copied, page, fsdata); in pagecache_write_end()
2996 struct address_space *mapping = file->f_mapping; in generic_file_direct_write() local
2997 struct inode *inode = mapping->host; in generic_file_direct_write()
3012 written = filemap_write_and_wait_range(mapping, pos, in generic_file_direct_write()
3024 written = invalidate_inode_pages2_range(mapping, in generic_file_direct_write()
3036 written = mapping->a_ops->direct_IO(iocb, from); in generic_file_direct_write()
3051 if (mapping->nrpages) in generic_file_direct_write()
3052 invalidate_inode_pages2_range(mapping, in generic_file_direct_write()
3074 struct page *grab_cache_page_write_begin(struct address_space *mapping, in grab_cache_page_write_begin() argument
3083 page = pagecache_get_page(mapping, index, fgp_flags, in grab_cache_page_write_begin()
3084 mapping_gfp_mask(mapping)); in grab_cache_page_write_begin()
3095 struct address_space *mapping = file->f_mapping; in generic_perform_write() local
3096 const struct address_space_operations *a_ops = mapping->a_ops; in generic_perform_write()
3133 status = a_ops->write_begin(file, mapping, pos, bytes, flags, in generic_perform_write()
3138 if (mapping_writably_mapped(mapping)) in generic_perform_write()
3144 status = a_ops->write_end(file, mapping, pos, bytes, copied, in generic_perform_write()
3169 balance_dirty_pages_ratelimited(mapping); in generic_perform_write()
3196 struct address_space * mapping = file->f_mapping; in __generic_file_write_iter() local
3197 struct inode *inode = mapping->host; in __generic_file_write_iter()
3244 err = filemap_write_and_wait_range(mapping, pos, endbyte); in __generic_file_write_iter()
3248 invalidate_mapping_pages(mapping, in __generic_file_write_iter()
3314 struct address_space * const mapping = page->mapping; in try_to_release_page() local
3320 if (mapping && mapping->a_ops->releasepage) in try_to_release_page()
3321 return mapping->a_ops->releasepage(page, gfp_mask); in try_to_release_page()