Lines Matching refs:page
77 p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); in nfs_writedata_alloc()
109 static struct nfs_page *nfs_page_find_request_locked(struct page *page) in nfs_page_find_request_locked() argument
113 if (PagePrivate(page)) { in nfs_page_find_request_locked()
114 req = (struct nfs_page *)page_private(page); in nfs_page_find_request_locked()
121 static struct nfs_page *nfs_page_find_request(struct page *page) in nfs_page_find_request() argument
123 struct inode *inode = page->mapping->host; in nfs_page_find_request()
127 req = nfs_page_find_request_locked(page); in nfs_page_find_request()
133 static void nfs_grow_file(struct page *page, unsigned int offset, unsigned int count) in nfs_grow_file() argument
135 struct inode *inode = page->mapping->host; in nfs_grow_file()
142 if (i_size > 0 && page->index < end_index) in nfs_grow_file()
144 end = ((loff_t)page->index << PAGE_CACHE_SHIFT) + ((loff_t)offset+count); in nfs_grow_file()
154 static void nfs_set_pageerror(struct page *page) in nfs_set_pageerror() argument
156 SetPageError(page); in nfs_set_pageerror()
157 nfs_zap_mapping(page->mapping->host, page->mapping); in nfs_set_pageerror()
163 static void nfs_mark_uptodate(struct page *page, unsigned int base, unsigned int count) in nfs_mark_uptodate() argument
165 if (PageUptodate(page)) in nfs_mark_uptodate()
169 if (count != nfs_page_length(page)) in nfs_mark_uptodate()
171 SetPageUptodate(page); in nfs_mark_uptodate()
193 static int nfs_set_page_writeback(struct page *page) in nfs_set_page_writeback() argument
195 int ret = test_set_page_writeback(page); in nfs_set_page_writeback()
198 struct inode *inode = page->mapping->host; in nfs_set_page_writeback()
208 static void nfs_end_page_writeback(struct page *page) in nfs_end_page_writeback() argument
210 struct inode *inode = page->mapping->host; in nfs_end_page_writeback()
213 end_page_writeback(page); in nfs_end_page_writeback()
223 struct page *page) in nfs_page_async_flush() argument
225 struct inode *inode = page->mapping->host; in nfs_page_async_flush()
231 req = nfs_page_find_request_locked(page); in nfs_page_async_flush()
254 if (nfs_set_page_writeback(page) != 0) { in nfs_page_async_flush()
266 static int nfs_do_writepage(struct page *page, struct writeback_control *wbc, struct nfs_pageio_des… in nfs_do_writepage() argument
268 struct inode *inode = page->mapping->host; in nfs_do_writepage()
273 nfs_pageio_cond_complete(pgio, page->index); in nfs_do_writepage()
274 return nfs_page_async_flush(pgio, page); in nfs_do_writepage()
280 static int nfs_writepage_locked(struct page *page, struct writeback_control *wbc) in nfs_writepage_locked() argument
285 nfs_pageio_init_write(&pgio, page->mapping->host, wb_priority(wbc)); in nfs_writepage_locked()
286 err = nfs_do_writepage(page, wbc, &pgio); in nfs_writepage_locked()
295 int nfs_writepage(struct page *page, struct writeback_control *wbc) in nfs_writepage() argument
299 ret = nfs_writepage_locked(page, wbc); in nfs_writepage()
300 unlock_page(page); in nfs_writepage()
304 static int nfs_writepages_callback(struct page *page, struct writeback_control *wbc, void *data) in nfs_writepages_callback() argument
308 ret = nfs_do_writepage(page, wbc, data); in nfs_writepages_callback()
309 unlock_page(page); in nfs_writepages_callback()
421 struct page *page = req->wb_page; in nfs_clear_request_commit() local
424 dec_zone_page_state(page, NR_UNSTABLE_NFS); in nfs_clear_request_commit()
425 dec_bdi_stat(page->mapping->backing_dev_info, BDI_RECLAIMABLE); in nfs_clear_request_commit()
565 struct page *page, in nfs_try_to_update_request() argument
574 if (!PagePrivate(page)) in nfs_try_to_update_request()
581 req = nfs_page_find_request_locked(page); in nfs_try_to_update_request()
627 error = nfs_wb_page(inode, page); in nfs_try_to_update_request()
640 struct page *page, unsigned int offset, unsigned int bytes) in nfs_setup_write_request() argument
642 struct inode *inode = page->mapping->host; in nfs_setup_write_request()
646 req = nfs_try_to_update_request(inode, page, offset, bytes); in nfs_setup_write_request()
649 req = nfs_create_request(ctx, inode, page, offset, bytes); in nfs_setup_write_request()
661 static int nfs_writepage_setup(struct nfs_open_context *ctx, struct page *page, in nfs_writepage_setup() argument
666 req = nfs_setup_write_request(ctx, page, offset, count); in nfs_writepage_setup()
670 nfs_grow_file(page, offset, count); in nfs_writepage_setup()
671 nfs_mark_uptodate(page, req->wb_pgbase, req->wb_bytes); in nfs_writepage_setup()
676 int nfs_flush_incompatible(struct file *file, struct page *page) in nfs_flush_incompatible() argument
690 req = nfs_page_find_request(page); in nfs_flush_incompatible()
693 do_flush = req->wb_page != page || req->wb_context != ctx; in nfs_flush_incompatible()
697 status = nfs_wb_page(page->mapping->host, page); in nfs_flush_incompatible()
707 static int nfs_write_pageuptodate(struct page *page, struct inode *inode) in nfs_write_pageuptodate() argument
709 return PageUptodate(page) && in nfs_write_pageuptodate()
719 int nfs_updatepage(struct file *file, struct page *page, in nfs_updatepage() argument
723 struct inode *inode = page->mapping->host; in nfs_updatepage()
731 (long long)(page_offset(page) + offset)); in nfs_updatepage()
738 if (nfs_write_pageuptodate(page, inode) && in nfs_updatepage()
741 count = max(count + offset, nfs_page_length(page)); in nfs_updatepage()
745 status = nfs_writepage_setup(ctx, page, offset, count); in nfs_updatepage()
747 nfs_set_pageerror(page); in nfs_updatepage()
749 __set_page_dirty_nobuffers(page); in nfs_updatepage()
868 struct page *page = req->wb_page; in nfs_flush_multi() local
891 ClearPageError(page); in nfs_flush_multi()
900 data->pagevec[0] = page; in nfs_flush_multi()
935 struct page **pages; in nfs_flush_one()
995 struct page *page = req->wb_page; in nfs_writeback_release_partial() local
999 nfs_set_pageerror(page); in nfs_writeback_release_partial()
1006 struct inode *inode = page->mapping->host; in nfs_writeback_release_partial()
1056 struct page *page = req->wb_page; in nfs_writeback_release_full() local
1068 nfs_set_pageerror(page); in nfs_writeback_release_full()
1077 nfs_end_page_writeback(page); in nfs_writeback_release_full()
1083 nfs_end_page_writeback(page); in nfs_writeback_release_full()
1456 int nfs_wb_page_cancel(struct inode *inode, struct page *page) in nfs_wb_page_cancel() argument
1459 loff_t range_start = page_offset(page); in nfs_wb_page_cancel()
1462 .bdi = page->mapping->backing_dev_info, in nfs_wb_page_cancel()
1470 BUG_ON(!PageLocked(page)); in nfs_wb_page_cancel()
1472 req = nfs_page_find_request(page); in nfs_wb_page_cancel()
1485 cancel_dirty_page(page, PAGE_CACHE_SIZE); in nfs_wb_page_cancel()
1493 if (!PagePrivate(page)) in nfs_wb_page_cancel()
1495 ret = nfs_sync_mapping_wait(page->mapping, &wbc, FLUSH_INVALIDATE); in nfs_wb_page_cancel()
1500 static int nfs_wb_page_priority(struct inode *inode, struct page *page, in nfs_wb_page_priority() argument
1503 loff_t range_start = page_offset(page); in nfs_wb_page_priority()
1506 .bdi = page->mapping->backing_dev_info, in nfs_wb_page_priority()
1515 if (clear_page_dirty_for_io(page)) { in nfs_wb_page_priority()
1516 ret = nfs_writepage_locked(page, &wbc); in nfs_wb_page_priority()
1519 } else if (!PagePrivate(page)) in nfs_wb_page_priority()
1521 ret = nfs_sync_mapping_wait(page->mapping, &wbc, how); in nfs_wb_page_priority()
1524 } while (PagePrivate(page)); in nfs_wb_page_priority()
1534 int nfs_wb_page(struct inode *inode, struct page* page) in nfs_wb_page() argument
1536 return nfs_wb_page_priority(inode, page, FLUSH_STABLE); in nfs_wb_page()