Lines Matching refs:page
54 struct page *page);
108 nfs_page_find_head_request_locked(struct nfs_inode *nfsi, struct page *page) in nfs_page_find_head_request_locked() argument
112 if (PagePrivate(page)) in nfs_page_find_head_request_locked()
113 req = (struct nfs_page *)page_private(page); in nfs_page_find_head_request_locked()
114 else if (unlikely(PageSwapCache(page))) in nfs_page_find_head_request_locked()
116 page); in nfs_page_find_head_request_locked()
131 static struct nfs_page *nfs_page_find_head_request(struct page *page) in nfs_page_find_head_request() argument
133 struct inode *inode = page_file_mapping(page)->host; in nfs_page_find_head_request()
137 req = nfs_page_find_head_request_locked(NFS_I(inode), page); in nfs_page_find_head_request()
143 static void nfs_grow_file(struct page *page, unsigned int offset, unsigned int count) in nfs_grow_file() argument
145 struct inode *inode = page_file_mapping(page)->host; in nfs_grow_file()
152 if (i_size > 0 && page_file_index(page) < end_index) in nfs_grow_file()
154 end = page_file_offset(page) + ((loff_t)offset+count); in nfs_grow_file()
164 static void nfs_set_pageerror(struct page *page) in nfs_set_pageerror() argument
166 nfs_zap_mapping(page_file_mapping(page)->host, page_file_mapping(page)); in nfs_set_pageerror()
265 static void nfs_set_page_writeback(struct page *page) in nfs_set_page_writeback() argument
267 struct nfs_server *nfss = NFS_SERVER(page_file_mapping(page)->host); in nfs_set_page_writeback()
268 int ret = test_set_page_writeback(page); in nfs_set_page_writeback()
428 nfs_lock_and_join_requests(struct page *page, bool nonblock) in nfs_lock_and_join_requests() argument
430 struct inode *inode = page_file_mapping(page)->host; in nfs_lock_and_join_requests()
448 head = nfs_page_find_head_request_locked(NFS_I(inode), page); in nfs_lock_and_join_requests()
553 struct page *page, bool nonblock) in nfs_page_async_flush() argument
558 req = nfs_lock_and_join_requests(page, nonblock); in nfs_page_async_flush()
565 nfs_set_page_writeback(page); in nfs_page_async_flush()
577 static int nfs_do_writepage(struct page *page, struct writeback_control *wbc, struct nfs_pageio_des… in nfs_do_writepage() argument
579 struct inode *inode = page_file_mapping(page)->host; in nfs_do_writepage()
585 nfs_pageio_cond_complete(pgio, page_file_index(page)); in nfs_do_writepage()
586 ret = nfs_page_async_flush(pgio, page, wbc->sync_mode == WB_SYNC_NONE); in nfs_do_writepage()
588 redirty_page_for_writepage(wbc, page); in nfs_do_writepage()
597 static int nfs_writepage_locked(struct page *page, struct writeback_control *wbc) in nfs_writepage_locked() argument
602 nfs_pageio_init_write(&pgio, page->mapping->host, wb_priority(wbc), in nfs_writepage_locked()
604 err = nfs_do_writepage(page, wbc, &pgio); in nfs_writepage_locked()
613 int nfs_writepage(struct page *page, struct writeback_control *wbc) in nfs_writepage() argument
617 ret = nfs_writepage_locked(page, wbc); in nfs_writepage()
618 unlock_page(page); in nfs_writepage()
622 static int nfs_writepages_callback(struct page *page, struct writeback_control *wbc, void *data) in nfs_writepages_callback() argument
626 ret = nfs_do_writepage(page, wbc, data); in nfs_writepages_callback()
627 unlock_page(page); in nfs_writepages_callback()
748 struct page *page) in nfs_page_search_commits_for_head_request_locked() argument
757 freq = pnfs_search_commit_reqs(inode, &cinfo, page); in nfs_page_search_commits_for_head_request_locked()
763 if (freq->wb_page == page) in nfs_page_search_commits_for_head_request_locked()
853 nfs_clear_page_commit(struct page *page) in nfs_clear_page_commit() argument
855 dec_zone_page_state(page, NR_UNSTABLE_NFS); in nfs_clear_page_commit()
856 dec_bdi_stat(inode_to_bdi(page_file_mapping(page)->host), BDI_RECLAIMABLE); in nfs_clear_page_commit()
982 struct page *page, in nfs_try_to_update_request() argument
991 if (!PagePrivate(page)) in nfs_try_to_update_request()
998 req = nfs_page_find_head_request_locked(NFS_I(inode), page); in nfs_try_to_update_request()
1046 error = nfs_wb_page(inode, page); in nfs_try_to_update_request()
1059 struct page *page, unsigned int offset, unsigned int bytes) in nfs_setup_write_request() argument
1061 struct inode *inode = page_file_mapping(page)->host; in nfs_setup_write_request()
1064 req = nfs_try_to_update_request(inode, page, offset, bytes); in nfs_setup_write_request()
1067 req = nfs_create_request(ctx, page, NULL, offset, bytes); in nfs_setup_write_request()
1075 static int nfs_writepage_setup(struct nfs_open_context *ctx, struct page *page, in nfs_writepage_setup() argument
1080 req = nfs_setup_write_request(ctx, page, offset, count); in nfs_writepage_setup()
1084 nfs_grow_file(page, offset, count); in nfs_writepage_setup()
1091 int nfs_flush_incompatible(struct file *file, struct page *page) in nfs_flush_incompatible() argument
1107 req = nfs_page_find_head_request(page); in nfs_flush_incompatible()
1111 do_flush = req->wb_page != page || req->wb_context != ctx; in nfs_flush_incompatible()
1123 status = nfs_wb_page(page_file_mapping(page)->host, page); in nfs_flush_incompatible()
1160 static bool nfs_write_pageuptodate(struct page *page, struct inode *inode) in nfs_write_pageuptodate() argument
1174 return PageUptodate(page) != 0; in nfs_write_pageuptodate()
1192 static int nfs_can_extend_write(struct file *file, struct page *page, struct inode *inode) in nfs_can_extend_write() argument
1200 if (!nfs_write_pageuptodate(page, inode)) in nfs_can_extend_write()
1232 int nfs_updatepage(struct file *file, struct page *page, in nfs_updatepage() argument
1236 struct inode *inode = page_file_mapping(page)->host; in nfs_updatepage()
1242 file, count, (long long)(page_file_offset(page) + offset)); in nfs_updatepage()
1244 if (nfs_can_extend_write(file, page, inode)) { in nfs_updatepage()
1245 count = max(count + offset, nfs_page_length(page)); in nfs_updatepage()
1249 status = nfs_writepage_setup(ctx, page, offset, count); in nfs_updatepage()
1251 nfs_set_pageerror(page); in nfs_updatepage()
1253 __set_page_dirty_nobuffers(page); in nfs_updatepage()
1869 int nfs_wb_page_cancel(struct inode *inode, struct page *page) in nfs_wb_page_cancel() argument
1874 wait_on_page_writeback(page); in nfs_wb_page_cancel()
1878 req = nfs_lock_and_join_requests(page, false); in nfs_wb_page_cancel()
1897 int nfs_wb_page(struct inode *inode, struct page *page) in nfs_wb_page() argument
1899 loff_t range_start = page_file_offset(page); in nfs_wb_page()
1912 wait_on_page_writeback(page); in nfs_wb_page()
1913 if (clear_page_dirty_for_io(page)) { in nfs_wb_page()
1914 ret = nfs_writepage_locked(page, &wbc); in nfs_wb_page()
1920 if (!PagePrivate(page)) in nfs_wb_page()
1932 int nfs_migrate_page(struct address_space *mapping, struct page *newpage, in nfs_migrate_page()
1933 struct page *page, enum migrate_mode mode) in nfs_migrate_page() argument
1943 if (PagePrivate(page)) in nfs_migrate_page()
1946 if (!nfs_fscache_release_page(page, GFP_KERNEL)) in nfs_migrate_page()
1949 return migrate_page(mapping, newpage, page, mode); in nfs_migrate_page()