Lines Matching refs:page

317 static int nfs_want_read_modify_write(struct file *file, struct page *page,  in nfs_want_read_modify_write()  argument
320 unsigned int pglen = nfs_page_length(page); in nfs_want_read_modify_write()
325 if (!PageUptodate(page)) in nfs_want_read_modify_write()
331 !PageUptodate(page) && /* Uptodate? */ in nfs_want_read_modify_write()
332 !PagePrivate(page) && /* i/o request already? */ in nfs_want_read_modify_write()
349 struct page **pagep, void **fsdata) in nfs_write_begin()
353 struct page *page; in nfs_write_begin() local
373 page = grab_cache_page_write_begin(mapping, index, flags); in nfs_write_begin()
374 if (!page) in nfs_write_begin()
376 *pagep = page; in nfs_write_begin()
378 ret = nfs_flush_incompatible(file, page); in nfs_write_begin()
380 unlock_page(page); in nfs_write_begin()
381 page_cache_release(page); in nfs_write_begin()
383 nfs_want_read_modify_write(file, page, pos, len)) { in nfs_write_begin()
385 ret = nfs_readpage(file, page); in nfs_write_begin()
386 page_cache_release(page); in nfs_write_begin()
395 struct page *page, void *fsdata) in nfs_write_end() argument
408 if (!PageUptodate(page)) { in nfs_write_end()
409 unsigned pglen = nfs_page_length(page); in nfs_write_end()
413 zero_user_segments(page, 0, offset, in nfs_write_end()
415 SetPageUptodate(page); in nfs_write_end()
417 zero_user_segment(page, end, PAGE_CACHE_SIZE); in nfs_write_end()
419 SetPageUptodate(page); in nfs_write_end()
421 zero_user_segment(page, pglen, PAGE_CACHE_SIZE); in nfs_write_end()
424 status = nfs_updatepage(file, page, offset, copied); in nfs_write_end()
426 unlock_page(page); in nfs_write_end()
427 page_cache_release(page); in nfs_write_end()
449 static void nfs_invalidate_page(struct page *page, unsigned int offset, in nfs_invalidate_page() argument
453 page, offset, length); in nfs_invalidate_page()
458 nfs_wb_page_cancel(page_file_mapping(page)->host, page); in nfs_invalidate_page()
460 nfs_fscache_invalidate_page(page, page->mapping->host); in nfs_invalidate_page()
469 static int nfs_release_page(struct page *page, gfp_t gfp) in nfs_release_page() argument
471 struct address_space *mapping = page->mapping; in nfs_release_page()
473 dfprintk(PAGECACHE, "NFS: release_page(%p)\n", page); in nfs_release_page()
489 wait_on_page_bit_killable_timeout(page, PG_private, in nfs_release_page()
491 if (PagePrivate(page)) in nfs_release_page()
497 if (PagePrivate(page)) in nfs_release_page()
499 return nfs_fscache_release_page(page, gfp); in nfs_release_page()
502 static void nfs_check_dirty_writeback(struct page *page, in nfs_check_dirty_writeback() argument
506 struct address_space *mapping = page_file_mapping(page); in nfs_check_dirty_writeback()
508 if (!mapping || PageSwapCache(page)) in nfs_check_dirty_writeback()
527 if (PagePrivate(page)) in nfs_check_dirty_writeback()
539 static int nfs_launder_page(struct page *page) in nfs_launder_page() argument
541 struct inode *inode = page_file_mapping(page)->host; in nfs_launder_page()
545 inode->i_ino, (long long)page_offset(page)); in nfs_launder_page()
547 nfs_fscache_wait_on_page_write(nfsi, page); in nfs_launder_page()
548 return nfs_wb_page(inode, page); in nfs_launder_page()
594 struct page *page = vmf->page; in nfs_vm_page_mkwrite() local
603 (long long)page_offset(page)); in nfs_vm_page_mkwrite()
606 nfs_fscache_wait_on_page_write(NFS_I(inode), page); in nfs_vm_page_mkwrite()
611 lock_page(page); in nfs_vm_page_mkwrite()
612 mapping = page_file_mapping(page); in nfs_vm_page_mkwrite()
616 wait_on_page_writeback(page); in nfs_vm_page_mkwrite()
618 pagelen = nfs_page_length(page); in nfs_vm_page_mkwrite()
623 if (nfs_flush_incompatible(filp, page) == 0 && in nfs_vm_page_mkwrite()
624 nfs_updatepage(filp, page, 0, pagelen) == 0) in nfs_vm_page_mkwrite()
629 unlock_page(page); in nfs_vm_page_mkwrite()