Lines Matching refs:page
30 struct page *page, bio_end_io_t end_io) in get_swap_bio() argument
38 bio->bi_iter.bi_sector = map_swap_page(page, &bdev); in get_swap_bio()
43 bio_add_page(bio, page, thp_size(page), 0); in get_swap_bio()
50 struct page *page = bio_first_page_all(bio); in end_swap_bio_write() local
53 SetPageError(page); in end_swap_bio_write()
62 set_page_dirty(page); in end_swap_bio_write()
66 ClearPageReclaim(page); in end_swap_bio_write()
68 end_page_writeback(page); in end_swap_bio_write()
74 struct page *page = bio_first_page_all(bio); in end_swap_bio_read() local
78 SetPageError(page); in end_swap_bio_read()
79 ClearPageUptodate(page); in end_swap_bio_read()
86 SetPageUptodate(page); in end_swap_bio_read()
88 unlock_page(page); in end_swap_bio_read()
198 int swap_writepage(struct page *page, struct writeback_control *wbc) in swap_writepage() argument
202 if (try_to_free_swap(page)) { in swap_writepage()
203 unlock_page(page); in swap_writepage()
210 ret = arch_prepare_to_swap(page); in swap_writepage()
212 set_page_dirty(page); in swap_writepage()
213 unlock_page(page); in swap_writepage()
216 if (frontswap_store(page) == 0) { in swap_writepage()
217 set_page_writeback(page); in swap_writepage()
218 unlock_page(page); in swap_writepage()
219 end_page_writeback(page); in swap_writepage()
222 ret = __swap_writepage(page, wbc, end_swap_bio_write); in swap_writepage()
227 static inline void count_swpout_vm_event(struct page *page) in count_swpout_vm_event() argument
230 if (unlikely(PageTransHuge(page))) in count_swpout_vm_event()
233 count_vm_events(PSWPOUT, thp_nr_pages(page)); in count_swpout_vm_event()
237 static void bio_associate_blkg_from_page(struct bio *bio, struct page *page) in bio_associate_blkg_from_page() argument
241 if (!page->mem_cgroup) in bio_associate_blkg_from_page()
245 css = cgroup_e_css(page->mem_cgroup->css.cgroup, &io_cgrp_subsys); in bio_associate_blkg_from_page()
250 #define bio_associate_blkg_from_page(bio, page) do { } while (0) argument
253 int __swap_writepage(struct page *page, struct writeback_control *wbc, in __swap_writepage() argument
258 struct swap_info_struct *sis = page_swap_info(page); in __swap_writepage()
260 VM_BUG_ON_PAGE(!PageSwapCache(page), page); in __swap_writepage()
266 .bv_page = page, in __swap_writepage()
274 kiocb.ki_pos = page_file_offset(page); in __swap_writepage()
276 set_page_writeback(page); in __swap_writepage()
277 unlock_page(page); in __swap_writepage()
293 set_page_dirty(page); in __swap_writepage()
294 ClearPageReclaim(page); in __swap_writepage()
296 page_file_offset(page)); in __swap_writepage()
298 end_page_writeback(page); in __swap_writepage()
302 ret = bdev_write_page(sis->bdev, swap_page_sector(page), page, wbc); in __swap_writepage()
304 count_swpout_vm_event(page); in __swap_writepage()
308 bio = get_swap_bio(GFP_NOIO, page, end_write_func); in __swap_writepage()
310 set_page_dirty(page); in __swap_writepage()
311 unlock_page(page); in __swap_writepage()
315 bio_associate_blkg_from_page(bio, page); in __swap_writepage()
316 count_swpout_vm_event(page); in __swap_writepage()
317 set_page_writeback(page); in __swap_writepage()
318 unlock_page(page); in __swap_writepage()
324 int swap_readpage(struct page *page, bool synchronous) in swap_readpage() argument
328 struct swap_info_struct *sis = page_swap_info(page); in swap_readpage()
333 VM_BUG_ON_PAGE(!PageSwapCache(page) && !synchronous, page); in swap_readpage()
334 VM_BUG_ON_PAGE(!PageLocked(page), page); in swap_readpage()
335 VM_BUG_ON_PAGE(PageUptodate(page), page); in swap_readpage()
344 if (frontswap_load(page) == 0) { in swap_readpage()
345 SetPageUptodate(page); in swap_readpage()
346 unlock_page(page); in swap_readpage()
354 ret = mapping->a_ops->readpage(swap_file, page); in swap_readpage()
361 ret = bdev_read_page(sis->bdev, swap_page_sector(page), page); in swap_readpage()
369 bio = get_swap_bio(GFP_KERNEL, page, end_swap_bio_read); in swap_readpage()
371 unlock_page(page); in swap_readpage()
405 int swap_set_page_dirty(struct page *page) in swap_set_page_dirty() argument
407 struct swap_info_struct *sis = page_swap_info(page); in swap_set_page_dirty()
412 VM_BUG_ON_PAGE(!PageSwapCache(page), page); in swap_set_page_dirty()
413 return mapping->a_ops->set_page_dirty(page); in swap_set_page_dirty()
415 return __set_page_dirty_no_writeback(page); in swap_set_page_dirty()