Lines Matching refs:page
10 * Add swap of shared pages through the page cache. 20.2.1998. Stephen Tweedie
30 struct page *page, bio_end_io_t end_io)
38 bio->bi_iter.bi_sector = map_swap_page(page, &bdev);
43 bio_add_page(bio, page, thp_size(page), 0);
50 struct page *page = bio_first_page_all(bio);
53 SetPageError(page);
55 * We failed to write the page out to swap-space.
56 * Re-dirty the page in order to avoid it being reclaimed.
62 set_page_dirty(page);
66 ClearPageReclaim(page);
68 end_page_writeback(page);
74 struct page *page = bio_first_page_all(bio);
78 SetPageError(page);
79 ClearPageUptodate(page);
86 SetPageUptodate(page);
88 unlock_page(page);
160 if (page_no) { /* exclude the header page */
198 int swap_writepage(struct page *page, struct writeback_control *wbc)
202 if (try_to_free_swap(page)) {
203 unlock_page(page);
207 * Arch code may have to preserve more data than just the page
210 ret = arch_prepare_to_swap(page);
212 set_page_dirty(page);
213 unlock_page(page);
216 if (frontswap_store(page) == 0) {
217 set_page_writeback(page);
218 unlock_page(page);
219 end_page_writeback(page);
222 ret = __swap_writepage(page, wbc, end_swap_bio_write);
227 static inline void count_swpout_vm_event(struct page *page)
230 if (unlikely(PageTransHuge(page)))
233 count_vm_events(PSWPOUT, thp_nr_pages(page));
237 static void bio_associate_blkg_from_page(struct bio *bio, struct page *page)
241 if (!page->mem_cgroup)
245 css = cgroup_e_css(page->mem_cgroup->css.cgroup, &io_cgrp_subsys);
250 #define bio_associate_blkg_from_page(bio, page) do { } while (0)
253 int __swap_writepage(struct page *page, struct writeback_control *wbc,
258 struct swap_info_struct *sis = page_swap_info(page);
260 VM_BUG_ON_PAGE(!PageSwapCache(page), page);
266 .bv_page = page,
274 kiocb.ki_pos = page_file_offset(page);
276 set_page_writeback(page);
277 unlock_page(page);
287 * Mark the page dirty and avoid
293 set_page_dirty(page);
294 ClearPageReclaim(page);
296 page_file_offset(page));
298 end_page_writeback(page);
302 ret = bdev_write_page(sis->bdev, swap_page_sector(page), page, wbc);
304 count_swpout_vm_event(page);
308 bio = get_swap_bio(GFP_NOIO, page, end_write_func);
310 set_page_dirty(page);
311 unlock_page(page);
315 bio_associate_blkg_from_page(bio, page);
316 count_swpout_vm_event(page);
317 set_page_writeback(page);
318 unlock_page(page);
324 int swap_readpage(struct page *page, bool synchronous)
328 struct swap_info_struct *sis = page_swap_info(page);
333 VM_BUG_ON_PAGE(!PageSwapCache(page) && !synchronous, page);
334 VM_BUG_ON_PAGE(!PageLocked(page), page);
335 VM_BUG_ON_PAGE(PageUptodate(page), page);
344 if (frontswap_load(page) == 0) {
345 SetPageUptodate(page);
346 unlock_page(page);
354 ret = mapping->a_ops->readpage(swap_file, page);
361 ret = bdev_read_page(sis->bdev, swap_page_sector(page), page);
369 bio = get_swap_bio(GFP_KERNEL, page, end_swap_bio_read);
371 unlock_page(page);
378 * attempt to access it in the page fault retry time check.
405 int swap_set_page_dirty(struct page *page)
407 struct swap_info_struct *sis = page_swap_info(page);
412 VM_BUG_ON_PAGE(!PageSwapCache(page), page);
413 return mapping->a_ops->set_page_dirty(page);
415 return __set_page_dirty_no_writeback(page);