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()
120 account_page_cleaned(page, mapping); in truncate_complete_page()
136 invalidate_complete_page(struct address_space *mapping, struct page *page) in invalidate_complete_page() argument
140 if (page->mapping != mapping) in invalidate_complete_page()
146 ret = remove_mapping(mapping, page); in invalidate_complete_page()
151 int truncate_inode_page(struct address_space *mapping, struct page *page) in truncate_inode_page() argument
154 unmap_mapping_range(mapping, in truncate_inode_page()
158 return truncate_complete_page(mapping, page); in truncate_inode_page()
164 int generic_error_remove_page(struct address_space *mapping, struct page *page) in generic_error_remove_page() argument
166 if (!mapping) in generic_error_remove_page()
172 if (!S_ISREG(mapping->host->i_mode)) in generic_error_remove_page()
174 return truncate_inode_page(mapping, page); in generic_error_remove_page()
186 struct address_space *mapping = page_mapping(page); in invalidate_inode_page() local
187 if (!mapping) in invalidate_inode_page()
193 return invalidate_complete_page(mapping, page); in invalidate_inode_page()
220 void truncate_inode_pages_range(struct address_space *mapping, in truncate_inode_pages_range() argument
232 cleancache_invalidate_inode(mapping); in truncate_inode_pages_range()
233 if (mapping->nrpages == 0 && mapping->nrshadows == 0) in truncate_inode_pages_range()
259 while (index < end && pagevec_lookup_entries(&pvec, mapping, index, in truncate_inode_pages_range()
271 clear_exceptional_entry(mapping, index, page); in truncate_inode_pages_range()
282 truncate_inode_page(mapping, page); in truncate_inode_pages_range()
292 struct page *page = find_lock_page(mapping, start - 1); in truncate_inode_pages_range()
302 cleancache_invalidate_page(mapping, page); in truncate_inode_pages_range()
311 struct page *page = find_lock_page(mapping, end); in truncate_inode_pages_range()
315 cleancache_invalidate_page(mapping, page); in truncate_inode_pages_range()
333 if (!pagevec_lookup_entries(&pvec, mapping, index, in truncate_inode_pages_range()
360 clear_exceptional_entry(mapping, index, page); in truncate_inode_pages_range()
367 truncate_inode_page(mapping, page); in truncate_inode_pages_range()
374 cleancache_invalidate_inode(mapping); in truncate_inode_pages_range()
390 void truncate_inode_pages(struct address_space *mapping, loff_t lstart) in truncate_inode_pages() argument
392 truncate_inode_pages_range(mapping, lstart, (loff_t)-1); in truncate_inode_pages()
405 void truncate_inode_pages_final(struct address_space *mapping) in truncate_inode_pages_final() argument
417 mapping_set_exiting(mapping); in truncate_inode_pages_final()
424 nrpages = mapping->nrpages; in truncate_inode_pages_final()
426 nrshadows = mapping->nrshadows; in truncate_inode_pages_final()
435 spin_lock_irq(&mapping->tree_lock); in truncate_inode_pages_final()
436 spin_unlock_irq(&mapping->tree_lock); in truncate_inode_pages_final()
438 truncate_inode_pages(mapping, 0); in truncate_inode_pages_final()
456 unsigned long invalidate_mapping_pages(struct address_space *mapping, in invalidate_mapping_pages() argument
467 while (index <= end && pagevec_lookup_entries(&pvec, mapping, index, in invalidate_mapping_pages()
479 clear_exceptional_entry(mapping, index, page); in invalidate_mapping_pages()
513 invalidate_complete_page2(struct address_space *mapping, struct page *page) in invalidate_complete_page2() argument
515 if (page->mapping != mapping) in invalidate_complete_page2()
521 spin_lock_irq(&mapping->tree_lock); in invalidate_complete_page2()
527 spin_unlock_irq(&mapping->tree_lock); in invalidate_complete_page2()
529 if (mapping->a_ops->freepage) in invalidate_complete_page2()
530 mapping->a_ops->freepage(page); in invalidate_complete_page2()
535 spin_unlock_irq(&mapping->tree_lock); in invalidate_complete_page2()
539 static int do_launder_page(struct address_space *mapping, struct page *page) in do_launder_page() argument
543 if (page->mapping != mapping || mapping->a_ops->launder_page == NULL) in do_launder_page()
545 return mapping->a_ops->launder_page(page); in do_launder_page()
559 int invalidate_inode_pages2_range(struct address_space *mapping, in invalidate_inode_pages2_range() argument
570 cleancache_invalidate_inode(mapping); in invalidate_inode_pages2_range()
573 while (index <= end && pagevec_lookup_entries(&pvec, mapping, index, in invalidate_inode_pages2_range()
585 clear_exceptional_entry(mapping, index, page); in invalidate_inode_pages2_range()
591 if (page->mapping != mapping) { in invalidate_inode_pages2_range()
601 unmap_mapping_range(mapping, in invalidate_inode_pages2_range()
611 unmap_mapping_range(mapping, in invalidate_inode_pages2_range()
617 ret2 = do_launder_page(mapping, page); in invalidate_inode_pages2_range()
619 if (!invalidate_complete_page2(mapping, page)) in invalidate_inode_pages2_range()
631 cleancache_invalidate_inode(mapping); in invalidate_inode_pages2_range()
645 int invalidate_inode_pages2(struct address_space *mapping) in invalidate_inode_pages2() argument
647 return invalidate_inode_pages2_range(mapping, 0, -1); in invalidate_inode_pages2()
668 struct address_space *mapping = inode->i_mapping; in truncate_pagecache() local
680 unmap_mapping_range(mapping, holebegin, 0, 1); in truncate_pagecache()
681 truncate_inode_pages(mapping, newsize); in truncate_pagecache()
682 unmap_mapping_range(mapping, holebegin, 0, 1); in truncate_pagecache()
776 struct address_space *mapping = inode->i_mapping; in truncate_pagecache_range() local
793 unmap_mapping_range(mapping, unmap_start, in truncate_pagecache_range()
795 truncate_inode_pages_range(mapping, lstart, lend); in truncate_pagecache_range()