Lines Matching refs:page
41 static void gfs2_page_add_databufs(struct gfs2_inode *ip, struct page *page, in gfs2_page_add_databufs() argument
44 struct buffer_head *head = page_buffers(page); in gfs2_page_add_databufs()
97 static int gfs2_writepage_common(struct page *page, in gfs2_writepage_common() argument
100 struct inode *inode = page->mapping->host; in gfs2_writepage_common()
113 if (page->index > end_index || (page->index == end_index && !offset)) { in gfs2_writepage_common()
114 page->mapping->a_ops->invalidatepage(page, 0, PAGE_CACHE_SIZE); in gfs2_writepage_common()
119 redirty_page_for_writepage(wbc, page); in gfs2_writepage_common()
121 unlock_page(page); in gfs2_writepage_common()
132 static int gfs2_writepage(struct page *page, struct writeback_control *wbc) in gfs2_writepage() argument
136 ret = gfs2_writepage_common(page, wbc); in gfs2_writepage()
140 return nobh_writepage(page, gfs2_get_block_noalloc, wbc); in gfs2_writepage()
154 static int __gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc) in __gfs2_jdata_writepage() argument
156 struct inode *inode = page->mapping->host; in __gfs2_jdata_writepage()
160 if (PageChecked(page)) { in __gfs2_jdata_writepage()
161 ClearPageChecked(page); in __gfs2_jdata_writepage()
162 if (!page_has_buffers(page)) { in __gfs2_jdata_writepage()
163 create_empty_buffers(page, inode->i_sb->s_blocksize, in __gfs2_jdata_writepage()
166 gfs2_page_add_databufs(ip, page, 0, sdp->sd_vfs->s_blocksize-1); in __gfs2_jdata_writepage()
168 return block_write_full_page(page, gfs2_get_block_noalloc, wbc); in __gfs2_jdata_writepage()
179 static int gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc) in gfs2_jdata_writepage() argument
181 struct inode *inode = page->mapping->host; in gfs2_jdata_writepage()
186 if (PageChecked(page)) { in gfs2_jdata_writepage()
194 ret = gfs2_writepage_common(page, wbc); in gfs2_jdata_writepage()
196 ret = __gfs2_jdata_writepage(page, wbc); in gfs2_jdata_writepage()
202 redirty_page_for_writepage(wbc, page); in gfs2_jdata_writepage()
203 unlock_page(page); in gfs2_jdata_writepage()
248 struct page *page = pvec->pages[i]; in gfs2_write_jdata_pagevec() local
257 if (page->index > end) { in gfs2_write_jdata_pagevec()
266 *done_index = page->index; in gfs2_write_jdata_pagevec()
268 lock_page(page); in gfs2_write_jdata_pagevec()
270 if (unlikely(page->mapping != mapping)) { in gfs2_write_jdata_pagevec()
272 unlock_page(page); in gfs2_write_jdata_pagevec()
276 if (!PageDirty(page)) { in gfs2_write_jdata_pagevec()
281 if (PageWriteback(page)) { in gfs2_write_jdata_pagevec()
283 wait_on_page_writeback(page); in gfs2_write_jdata_pagevec()
288 BUG_ON(PageWriteback(page)); in gfs2_write_jdata_pagevec()
289 if (!clear_page_dirty_for_io(page)) in gfs2_write_jdata_pagevec()
294 ret = __gfs2_jdata_writepage(page, wbc); in gfs2_write_jdata_pagevec()
297 unlock_page(page); in gfs2_write_jdata_pagevec()
310 *done_index = page->index + 1; in gfs2_write_jdata_pagevec()
448 static int stuffed_readpage(struct gfs2_inode *ip, struct page *page) in stuffed_readpage() argument
460 if (unlikely(page->index)) { in stuffed_readpage()
461 zero_user(page, 0, PAGE_CACHE_SIZE); in stuffed_readpage()
462 SetPageUptodate(page); in stuffed_readpage()
470 kaddr = kmap_atomic(page); in stuffed_readpage()
476 flush_dcache_page(page); in stuffed_readpage()
478 SetPageUptodate(page); in stuffed_readpage()
495 static int __gfs2_readpage(void *file, struct page *page) in __gfs2_readpage() argument
497 struct gfs2_inode *ip = GFS2_I(page->mapping->host); in __gfs2_readpage()
498 struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); in __gfs2_readpage()
502 error = stuffed_readpage(ip, page); in __gfs2_readpage()
503 unlock_page(page); in __gfs2_readpage()
505 error = mpage_readpage(page, gfs2_block_map); in __gfs2_readpage()
524 static int gfs2_readpage(struct file *file, struct page *page) in gfs2_readpage() argument
526 struct address_space *mapping = page->mapping; in gfs2_readpage()
531 unlock_page(page); in gfs2_readpage()
537 lock_page(page); in gfs2_readpage()
538 if (page->mapping == mapping && !PageUptodate(page)) in gfs2_readpage()
539 error = __gfs2_readpage(file, page); in gfs2_readpage()
541 unlock_page(page); in gfs2_readpage()
546 lock_page(page); in gfs2_readpage()
567 struct page *page; in gfs2_internal_read() local
574 page = read_cache_page(mapping, index, __gfs2_readpage, NULL); in gfs2_internal_read()
575 if (IS_ERR(page)) in gfs2_internal_read()
576 return PTR_ERR(page); in gfs2_internal_read()
577 p = kmap_atomic(page); in gfs2_internal_read()
580 page_cache_release(page); in gfs2_internal_read()
641 struct page **pagep, void **fsdata) in gfs2_write_begin()
652 struct page *page; in gfs2_write_begin() local
702 page = grab_cache_page_write_begin(mapping, index, flags); in gfs2_write_begin()
703 *pagep = page; in gfs2_write_begin()
704 if (unlikely(!page)) in gfs2_write_begin()
710 error = gfs2_unstuff_dinode(ip, page); in gfs2_write_begin()
713 } else if (!PageUptodate(page)) { in gfs2_write_begin()
714 error = stuffed_readpage(ip, page); in gfs2_write_begin()
720 error = __block_write_begin(page, from, len, gfs2_block_map); in gfs2_write_begin()
725 unlock_page(page); in gfs2_write_begin()
726 page_cache_release(page); in gfs2_write_begin()
807 struct page *page) in gfs2_stuffed_write_end() argument
817 kaddr = kmap_atomic(page); in gfs2_stuffed_write_end()
820 flush_dcache_page(page); in gfs2_stuffed_write_end()
823 if (!PageUptodate(page)) in gfs2_stuffed_write_end()
824 SetPageUptodate(page); in gfs2_stuffed_write_end()
825 unlock_page(page); in gfs2_stuffed_write_end()
826 page_cache_release(page); in gfs2_stuffed_write_end()
869 struct page *page, void *fsdata) in gfs2_write_end() argument
871 struct inode *inode = page->mapping->host; in gfs2_write_end()
886 unlock_page(page); in gfs2_write_end()
887 page_cache_release(page); in gfs2_write_end()
892 return gfs2_stuffed_write_end(inode, dibh, pos, len, copied, page); in gfs2_write_end()
895 gfs2_page_add_databufs(ip, page, from, to); in gfs2_write_end()
897 ret = generic_write_end(file, mapping, pos, len, copied, page, fsdata); in gfs2_write_end()
931 static int gfs2_set_page_dirty(struct page *page) in gfs2_set_page_dirty() argument
933 SetPageChecked(page); in gfs2_set_page_dirty()
934 return __set_page_dirty_buffers(page); in gfs2_set_page_dirty()
986 static void gfs2_invalidatepage(struct page *page, unsigned int offset, in gfs2_invalidatepage() argument
989 struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); in gfs2_invalidatepage()
995 BUG_ON(!PageLocked(page)); in gfs2_invalidatepage()
997 ClearPageChecked(page); in gfs2_invalidatepage()
998 if (!page_has_buffers(page)) in gfs2_invalidatepage()
1001 bh = head = page_buffers(page); in gfs2_invalidatepage()
1013 try_to_release_page(page, 0); in gfs2_invalidatepage()
1116 int gfs2_releasepage(struct page *page, gfp_t gfp_mask) in gfs2_releasepage() argument
1118 struct address_space *mapping = page->mapping; in gfs2_releasepage()
1123 if (!page_has_buffers(page)) in gfs2_releasepage()
1128 head = bh = page_buffers(page); in gfs2_releasepage()
1141 head = bh = page_buffers(page); in gfs2_releasepage()
1157 return try_to_free_buffers(page); in gfs2_releasepage()