Lines Matching refs:page
95 #define page_cache_get(page) get_page(page) argument
96 #define page_cache_release(page) put_page(page) argument
97 void release_pages(struct page **pages, int nr, bool cold);
143 static inline int page_cache_get_speculative(struct page *page) in page_cache_get_speculative() argument
160 VM_BUG_ON_PAGE(page_count(page) == 0, page); in page_cache_get_speculative()
161 atomic_inc(&page->_count); in page_cache_get_speculative()
164 if (unlikely(!get_page_unless_zero(page))) { in page_cache_get_speculative()
173 VM_BUG_ON_PAGE(PageTail(page), page); in page_cache_get_speculative()
181 static inline int page_cache_add_speculative(struct page *page, int count) in page_cache_add_speculative() argument
189 VM_BUG_ON_PAGE(page_count(page) == 0, page); in page_cache_add_speculative()
190 atomic_add(count, &page->_count); in page_cache_add_speculative()
193 if (unlikely(!atomic_add_unless(&page->_count, count, 0))) in page_cache_add_speculative()
196 VM_BUG_ON_PAGE(PageCompound(page) && page != compound_head(page), page); in page_cache_add_speculative()
201 static inline int page_freeze_refs(struct page *page, int count) in page_freeze_refs() argument
203 return likely(atomic_cmpxchg(&page->_count, count, 0) == count); in page_freeze_refs()
206 static inline void page_unfreeze_refs(struct page *page, int count) in page_unfreeze_refs() argument
208 VM_BUG_ON_PAGE(page_count(page) != 0, page); in page_unfreeze_refs()
211 atomic_set(&page->_count, count); in page_unfreeze_refs()
215 extern struct page *__page_cache_alloc(gfp_t gfp);
217 static inline struct page *__page_cache_alloc(gfp_t gfp) in __page_cache_alloc()
223 static inline struct page *page_cache_alloc(struct address_space *x) in page_cache_alloc()
228 static inline struct page *page_cache_alloc_cold(struct address_space *x) in page_cache_alloc_cold()
233 static inline struct page *page_cache_alloc_readahead(struct address_space *x) in page_cache_alloc_readahead()
239 typedef int filler_t(void *, struct page *);
253 struct page *pagecache_get_page(struct address_space *mapping, pgoff_t offset,
266 static inline struct page *find_get_page(struct address_space *mapping, in find_get_page()
272 static inline struct page *find_get_page_flags(struct address_space *mapping, in find_get_page_flags()
292 static inline struct page *find_lock_page(struct address_space *mapping, in find_lock_page()
317 static inline struct page *find_or_create_page(struct address_space *mapping, in find_or_create_page()
338 static inline struct page *grab_cache_page_nowait(struct address_space *mapping, in grab_cache_page_nowait()
346 struct page *find_get_entry(struct address_space *mapping, pgoff_t offset);
347 struct page *find_lock_entry(struct address_space *mapping, pgoff_t offset);
349 unsigned int nr_entries, struct page **entries,
352 unsigned int nr_pages, struct page **pages);
354 unsigned int nr_pages, struct page **pages);
356 int tag, unsigned int nr_pages, struct page **pages);
358 struct page *grab_cache_page_write_begin(struct address_space *mapping,
364 static inline struct page *grab_cache_page(struct address_space *mapping, in grab_cache_page()
370 extern struct page * read_cache_page(struct address_space *mapping,
372 extern struct page * read_cache_page_gfp(struct address_space *mapping,
377 static inline struct page *read_mapping_page(struct address_space *mapping, in read_mapping_page()
388 static inline pgoff_t page_to_pgoff(struct page *page) in page_to_pgoff() argument
390 if (unlikely(PageHeadHuge(page))) in page_to_pgoff()
391 return page->index << compound_order(page); in page_to_pgoff()
393 return page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT); in page_to_pgoff()
399 static inline loff_t page_offset(struct page *page) in page_offset() argument
401 return ((loff_t)page->index) << PAGE_CACHE_SHIFT; in page_offset()
404 static inline loff_t page_file_offset(struct page *page) in page_file_offset() argument
406 return ((loff_t)page_file_index(page)) << PAGE_CACHE_SHIFT; in page_file_offset()
423 extern void __lock_page(struct page *page);
424 extern int __lock_page_killable(struct page *page);
425 extern int __lock_page_or_retry(struct page *page, struct mm_struct *mm,
427 extern void unlock_page(struct page *page);
429 static inline void __set_page_locked(struct page *page) in __set_page_locked() argument
431 __set_bit(PG_locked, &page->flags); in __set_page_locked()
434 static inline void __clear_page_locked(struct page *page) in __clear_page_locked() argument
436 __clear_bit(PG_locked, &page->flags); in __clear_page_locked()
439 static inline int trylock_page(struct page *page) in trylock_page() argument
441 return (likely(!test_and_set_bit_lock(PG_locked, &page->flags))); in trylock_page()
447 static inline void lock_page(struct page *page) in lock_page() argument
450 if (!trylock_page(page)) in lock_page()
451 __lock_page(page); in lock_page()
459 static inline int lock_page_killable(struct page *page) in lock_page_killable() argument
462 if (!trylock_page(page)) in lock_page_killable()
463 return __lock_page_killable(page); in lock_page_killable()
474 static inline int lock_page_or_retry(struct page *page, struct mm_struct *mm, in lock_page_or_retry() argument
478 return trylock_page(page) || __lock_page_or_retry(page, mm, flags); in lock_page_or_retry()
485 extern void wait_on_page_bit(struct page *page, int bit_nr);
487 extern int wait_on_page_bit_killable(struct page *page, int bit_nr);
488 extern int wait_on_page_bit_killable_timeout(struct page *page,
491 static inline int wait_on_page_locked_killable(struct page *page) in wait_on_page_locked_killable() argument
493 if (PageLocked(page)) in wait_on_page_locked_killable()
494 return wait_on_page_bit_killable(page, PG_locked); in wait_on_page_locked_killable()
498 extern wait_queue_head_t *page_waitqueue(struct page *page);
499 static inline void wake_up_page(struct page *page, int bit) in wake_up_page() argument
501 __wake_up_bit(page_waitqueue(page), &page->flags, bit); in wake_up_page()
511 static inline void wait_on_page_locked(struct page *page) in wait_on_page_locked() argument
513 if (PageLocked(page)) in wait_on_page_locked()
514 wait_on_page_bit(page, PG_locked); in wait_on_page_locked()
520 static inline void wait_on_page_writeback(struct page *page) in wait_on_page_writeback() argument
522 if (PageWriteback(page)) in wait_on_page_writeback()
523 wait_on_page_bit(page, PG_writeback); in wait_on_page_writeback()
526 extern void end_page_writeback(struct page *page);
527 void wait_for_stable_page(struct page *page);
529 void page_endio(struct page *page, int rw, int err);
534 extern void add_page_wait_queue(struct page *page, wait_queue_t *waiter);
649 int add_to_page_cache_locked(struct page *page, struct address_space *mapping,
651 int add_to_page_cache_lru(struct page *page, struct address_space *mapping,
653 extern void delete_from_page_cache(struct page *page);
654 extern void __delete_from_page_cache(struct page *page, void *shadow);
655 int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask);
661 static inline int add_to_page_cache(struct page *page, in add_to_page_cache() argument
666 __set_page_locked(page); in add_to_page_cache()
667 error = add_to_page_cache_locked(page, mapping, offset, gfp_mask); in add_to_page_cache()
669 __clear_page_locked(page); in add_to_page_cache()