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); 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_writeback_writepage(struct page *page, in gfs2_writeback_writepage() argument
137 ret = gfs2_writepage_common(page, wbc); in gfs2_writeback_writepage()
141 ret = mpage_writepage(page, gfs2_get_block_noalloc, wbc); in gfs2_writeback_writepage()
143 ret = block_write_full_page(page, gfs2_get_block_noalloc, wbc); in gfs2_writeback_writepage()
154 static int gfs2_ordered_writepage(struct page *page, in gfs2_ordered_writepage() argument
157 struct inode *inode = page->mapping->host; in gfs2_ordered_writepage()
161 ret = gfs2_writepage_common(page, wbc); in gfs2_ordered_writepage()
165 if (!page_has_buffers(page)) { in gfs2_ordered_writepage()
166 create_empty_buffers(page, inode->i_sb->s_blocksize, in gfs2_ordered_writepage()
169 gfs2_page_add_databufs(ip, page, 0, inode->i_sb->s_blocksize-1); in gfs2_ordered_writepage()
170 return block_write_full_page(page, gfs2_get_block_noalloc, wbc); in gfs2_ordered_writepage()
184 static int __gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc) in __gfs2_jdata_writepage() argument
186 struct inode *inode = page->mapping->host; in __gfs2_jdata_writepage()
190 if (PageChecked(page)) { in __gfs2_jdata_writepage()
191 ClearPageChecked(page); in __gfs2_jdata_writepage()
192 if (!page_has_buffers(page)) { in __gfs2_jdata_writepage()
193 create_empty_buffers(page, inode->i_sb->s_blocksize, in __gfs2_jdata_writepage()
196 gfs2_page_add_databufs(ip, page, 0, sdp->sd_vfs->s_blocksize-1); in __gfs2_jdata_writepage()
198 return block_write_full_page(page, gfs2_get_block_noalloc, wbc); in __gfs2_jdata_writepage()
209 static int gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc) in gfs2_jdata_writepage() argument
211 struct inode *inode = page->mapping->host; in gfs2_jdata_writepage()
216 if (PageChecked(page)) { in gfs2_jdata_writepage()
224 ret = gfs2_writepage_common(page, wbc); in gfs2_jdata_writepage()
226 ret = __gfs2_jdata_writepage(page, wbc); in gfs2_jdata_writepage()
232 redirty_page_for_writepage(wbc, page); in gfs2_jdata_writepage()
233 unlock_page(page); in gfs2_jdata_writepage()
283 struct page *page = pvec->pages[i]; in gfs2_write_jdata_pagevec() local
285 lock_page(page); in gfs2_write_jdata_pagevec()
287 if (unlikely(page->mapping != mapping)) { in gfs2_write_jdata_pagevec()
288 unlock_page(page); in gfs2_write_jdata_pagevec()
292 if (!wbc->range_cyclic && page->index > end) { in gfs2_write_jdata_pagevec()
294 unlock_page(page); in gfs2_write_jdata_pagevec()
299 wait_on_page_writeback(page); in gfs2_write_jdata_pagevec()
301 if (PageWriteback(page) || in gfs2_write_jdata_pagevec()
302 !clear_page_dirty_for_io(page)) { in gfs2_write_jdata_pagevec()
303 unlock_page(page); in gfs2_write_jdata_pagevec()
308 if (page->index > end_index || (page->index == end_index && !offset)) { in gfs2_write_jdata_pagevec()
309 page->mapping->a_ops->invalidatepage(page, 0); in gfs2_write_jdata_pagevec()
310 unlock_page(page); in gfs2_write_jdata_pagevec()
314 ret = __gfs2_jdata_writepage(page, wbc); in gfs2_write_jdata_pagevec()
432 static int stuffed_readpage(struct gfs2_inode *ip, struct page *page) in stuffed_readpage() argument
443 if (unlikely(page->index)) { in stuffed_readpage()
444 zero_user(page, 0, PAGE_CACHE_SIZE); in stuffed_readpage()
452 kaddr = kmap_atomic(page, KM_USER0); in stuffed_readpage()
457 flush_dcache_page(page); in stuffed_readpage()
459 SetPageUptodate(page); in stuffed_readpage()
476 static int __gfs2_readpage(void *file, struct page *page) in __gfs2_readpage() argument
478 struct gfs2_inode *ip = GFS2_I(page->mapping->host); in __gfs2_readpage()
479 struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); in __gfs2_readpage()
483 error = stuffed_readpage(ip, page); in __gfs2_readpage()
484 unlock_page(page); in __gfs2_readpage()
486 error = mpage_readpage(page, gfs2_block_map); in __gfs2_readpage()
505 static int gfs2_readpage(struct file *file, struct page *page) in gfs2_readpage() argument
507 struct address_space *mapping = page->mapping; in gfs2_readpage()
512 unlock_page(page); in gfs2_readpage()
518 lock_page(page); in gfs2_readpage()
519 if (page->mapping == mapping && !PageUptodate(page)) in gfs2_readpage()
520 error = __gfs2_readpage(file, page); in gfs2_readpage()
522 unlock_page(page); in gfs2_readpage()
527 lock_page(page); in gfs2_readpage()
549 struct page *page; in gfs2_internal_read() local
556 page = read_cache_page(mapping, index, __gfs2_readpage, NULL); in gfs2_internal_read()
557 if (IS_ERR(page)) in gfs2_internal_read()
558 return PTR_ERR(page); in gfs2_internal_read()
559 p = kmap_atomic(page, KM_USER0); in gfs2_internal_read()
562 mark_page_accessed(page); in gfs2_internal_read()
563 page_cache_release(page); in gfs2_internal_read()
624 struct page **pagep, void **fsdata) in gfs2_write_begin()
635 struct page *page; in gfs2_write_begin() local
679 page = grab_cache_page_write_begin(mapping, index, flags); in gfs2_write_begin()
680 *pagep = page; in gfs2_write_begin()
681 if (unlikely(!page)) in gfs2_write_begin()
687 error = gfs2_unstuff_dinode(ip, page); in gfs2_write_begin()
690 } else if (!PageUptodate(page)) { in gfs2_write_begin()
691 error = stuffed_readpage(ip, page); in gfs2_write_begin()
697 error = block_prepare_write(page, from, to, gfs2_block_map); in gfs2_write_begin()
702 page_cache_release(page); in gfs2_write_begin()
763 struct page *page) in gfs2_stuffed_write_end() argument
773 kaddr = kmap_atomic(page, KM_USER0); in gfs2_stuffed_write_end()
776 flush_dcache_page(page); in gfs2_stuffed_write_end()
779 if (!PageUptodate(page)) in gfs2_stuffed_write_end()
780 SetPageUptodate(page); in gfs2_stuffed_write_end()
781 unlock_page(page); in gfs2_stuffed_write_end()
782 page_cache_release(page); in gfs2_stuffed_write_end()
820 struct page *page, void *fsdata) in gfs2_write_end() argument
822 struct inode *inode = page->mapping->host; in gfs2_write_end()
836 unlock_page(page); in gfs2_write_end()
837 page_cache_release(page); in gfs2_write_end()
844 return gfs2_stuffed_write_end(inode, dibh, pos, len, copied, page); in gfs2_write_end()
847 gfs2_page_add_databufs(ip, page, from, to); in gfs2_write_end()
849 ret = generic_write_end(file, mapping, pos, len, copied, page, fsdata); in gfs2_write_end()
881 static int gfs2_set_page_dirty(struct page *page) in gfs2_set_page_dirty() argument
883 SetPageChecked(page); in gfs2_set_page_dirty()
884 return __set_page_dirty_buffers(page); in gfs2_set_page_dirty()
936 static void gfs2_invalidatepage(struct page *page, unsigned long offset) in gfs2_invalidatepage() argument
938 struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); in gfs2_invalidatepage()
942 BUG_ON(!PageLocked(page)); in gfs2_invalidatepage()
944 ClearPageChecked(page); in gfs2_invalidatepage()
945 if (!page_has_buffers(page)) in gfs2_invalidatepage()
948 bh = head = page_buffers(page); in gfs2_invalidatepage()
957 try_to_release_page(page, 0); in gfs2_invalidatepage()
1032 int gfs2_releasepage(struct page *page, gfp_t gfp_mask) in gfs2_releasepage() argument
1034 struct inode *aspace = page->mapping->host; in gfs2_releasepage()
1039 if (!page_has_buffers(page)) in gfs2_releasepage()
1043 head = bh = page_buffers(page); in gfs2_releasepage()
1056 head = bh = page_buffers(page); in gfs2_releasepage()
1080 return try_to_free_buffers(page); in gfs2_releasepage()