Lines Matching refs:mapping
26 static void clear_exceptional_entry(struct address_space *mapping, in clear_exceptional_entry() argument
33 if (shmem_mapping(mapping)) in clear_exceptional_entry()
36 spin_lock_irq(&mapping->tree_lock); in clear_exceptional_entry()
42 if (!__radix_tree_lookup(&mapping->page_tree, index, &node, &slot)) in clear_exceptional_entry()
47 mapping->nrshadows--; in clear_exceptional_entry()
61 __radix_tree_delete_node(&mapping->page_tree, node); in clear_exceptional_entry()
63 spin_unlock_irq(&mapping->tree_lock); in clear_exceptional_entry()
86 invalidatepage = page->mapping->a_ops->invalidatepage; in do_invalidatepage()
106 truncate_complete_page(struct address_space *mapping, struct page *page) in truncate_complete_page() argument
108 if (page->mapping != mapping) in truncate_complete_page()
134 invalidate_complete_page(struct address_space *mapping, struct page *page) in invalidate_complete_page() argument
138 if (page->mapping != mapping) in invalidate_complete_page()
144 ret = remove_mapping(mapping, page); in invalidate_complete_page()
149 int truncate_inode_page(struct address_space *mapping, struct page *page) in truncate_inode_page() argument
152 unmap_mapping_range(mapping, in truncate_inode_page()
156 return truncate_complete_page(mapping, page); in truncate_inode_page()
162 int generic_error_remove_page(struct address_space *mapping, struct page *page) in generic_error_remove_page() argument
164 if (!mapping) in generic_error_remove_page()
170 if (!S_ISREG(mapping->host->i_mode)) in generic_error_remove_page()
172 return truncate_inode_page(mapping, page); in generic_error_remove_page()
184 struct address_space *mapping = page_mapping(page); in invalidate_inode_page() local
185 if (!mapping) in invalidate_inode_page()
191 return invalidate_complete_page(mapping, page); in invalidate_inode_page()
218 void truncate_inode_pages_range(struct address_space *mapping, in truncate_inode_pages_range() argument
230 cleancache_invalidate_inode(mapping); in truncate_inode_pages_range()
231 if (mapping->nrpages == 0 && mapping->nrshadows == 0) in truncate_inode_pages_range()
257 while (index < end && pagevec_lookup_entries(&pvec, mapping, index, in truncate_inode_pages_range()
269 clear_exceptional_entry(mapping, index, page); in truncate_inode_pages_range()
280 truncate_inode_page(mapping, page); in truncate_inode_pages_range()
290 struct page *page = find_lock_page(mapping, start - 1); in truncate_inode_pages_range()
300 cleancache_invalidate_page(mapping, page); in truncate_inode_pages_range()
309 struct page *page = find_lock_page(mapping, end); in truncate_inode_pages_range()
313 cleancache_invalidate_page(mapping, page); in truncate_inode_pages_range()
331 if (!pagevec_lookup_entries(&pvec, mapping, index, in truncate_inode_pages_range()
358 clear_exceptional_entry(mapping, index, page); in truncate_inode_pages_range()
365 truncate_inode_page(mapping, page); in truncate_inode_pages_range()
372 cleancache_invalidate_inode(mapping); in truncate_inode_pages_range()
388 void truncate_inode_pages(struct address_space *mapping, loff_t lstart) in truncate_inode_pages() argument
390 truncate_inode_pages_range(mapping, lstart, (loff_t)-1); in truncate_inode_pages()
403 void truncate_inode_pages_final(struct address_space *mapping) in truncate_inode_pages_final() argument
415 mapping_set_exiting(mapping); in truncate_inode_pages_final()
422 nrpages = mapping->nrpages; in truncate_inode_pages_final()
424 nrshadows = mapping->nrshadows; in truncate_inode_pages_final()
433 spin_lock_irq(&mapping->tree_lock); in truncate_inode_pages_final()
434 spin_unlock_irq(&mapping->tree_lock); in truncate_inode_pages_final()
436 truncate_inode_pages(mapping, 0); in truncate_inode_pages_final()
454 unsigned long invalidate_mapping_pages(struct address_space *mapping, in invalidate_mapping_pages() argument
465 while (index <= end && pagevec_lookup_entries(&pvec, mapping, index, in invalidate_mapping_pages()
477 clear_exceptional_entry(mapping, index, page); in invalidate_mapping_pages()
511 invalidate_complete_page2(struct address_space *mapping, struct page *page) in invalidate_complete_page2() argument
516 if (page->mapping != mapping) in invalidate_complete_page2()
523 spin_lock_irqsave(&mapping->tree_lock, flags); in invalidate_complete_page2()
529 spin_unlock_irqrestore(&mapping->tree_lock, flags); in invalidate_complete_page2()
532 if (mapping->a_ops->freepage) in invalidate_complete_page2()
533 mapping->a_ops->freepage(page); in invalidate_complete_page2()
538 spin_unlock_irqrestore(&mapping->tree_lock, flags); in invalidate_complete_page2()
543 static int do_launder_page(struct address_space *mapping, struct page *page) in do_launder_page() argument
547 if (page->mapping != mapping || mapping->a_ops->launder_page == NULL) in do_launder_page()
549 return mapping->a_ops->launder_page(page); in do_launder_page()
563 int invalidate_inode_pages2_range(struct address_space *mapping, in invalidate_inode_pages2_range() argument
574 cleancache_invalidate_inode(mapping); in invalidate_inode_pages2_range()
577 while (index <= end && pagevec_lookup_entries(&pvec, mapping, index, in invalidate_inode_pages2_range()
589 clear_exceptional_entry(mapping, index, page); in invalidate_inode_pages2_range()
595 if (page->mapping != mapping) { in invalidate_inode_pages2_range()
605 unmap_mapping_range(mapping, in invalidate_inode_pages2_range()
615 unmap_mapping_range(mapping, in invalidate_inode_pages2_range()
621 ret2 = do_launder_page(mapping, page); in invalidate_inode_pages2_range()
623 if (!invalidate_complete_page2(mapping, page)) in invalidate_inode_pages2_range()
635 cleancache_invalidate_inode(mapping); in invalidate_inode_pages2_range()
649 int invalidate_inode_pages2(struct address_space *mapping) in invalidate_inode_pages2() argument
651 return invalidate_inode_pages2_range(mapping, 0, -1); in invalidate_inode_pages2()
672 struct address_space *mapping = inode->i_mapping; in truncate_pagecache() local
684 unmap_mapping_range(mapping, holebegin, 0, 1); in truncate_pagecache()
685 truncate_inode_pages(mapping, newsize); in truncate_pagecache()
686 unmap_mapping_range(mapping, holebegin, 0, 1); in truncate_pagecache()
780 struct address_space *mapping = inode->i_mapping; in truncate_pagecache_range() local
797 unmap_mapping_range(mapping, unmap_start, in truncate_pagecache_range()
799 truncate_inode_pages_range(mapping, lstart, lend); in truncate_pagecache_range()