Lines Matching refs:page
40 void gfs2_page_add_databufs(struct gfs2_inode *ip, struct page *page, in gfs2_page_add_databufs() argument
43 struct buffer_head *head = page_buffers(page); in gfs2_page_add_databufs()
89 static int gfs2_writepage(struct page *page, struct writeback_control *wbc) in gfs2_writepage() argument
91 struct inode *inode = page->mapping->host; in gfs2_writepage()
104 if (page->index > end_index || (page->index == end_index && !offset)) { in gfs2_writepage()
105 page->mapping->a_ops->invalidatepage(page, 0, PAGE_SIZE); in gfs2_writepage()
109 return nobh_writepage(page, gfs2_get_block_noalloc, wbc); in gfs2_writepage()
112 redirty_page_for_writepage(wbc, page); in gfs2_writepage()
114 unlock_page(page); in gfs2_writepage()
121 static int gfs2_write_full_page(struct page *page, get_block_t *get_block, in gfs2_write_full_page() argument
124 struct inode * const inode = page->mapping->host; in gfs2_write_full_page()
137 if (page->index == end_index && offset) in gfs2_write_full_page()
138 zero_user_segment(page, offset, PAGE_SIZE); in gfs2_write_full_page()
140 return __block_write_full_page(inode, page, get_block, wbc, in gfs2_write_full_page()
155 static int __gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc) in __gfs2_jdata_writepage() argument
157 struct inode *inode = page->mapping->host; in __gfs2_jdata_writepage()
161 if (PageChecked(page)) { in __gfs2_jdata_writepage()
162 ClearPageChecked(page); in __gfs2_jdata_writepage()
163 if (!page_has_buffers(page)) { in __gfs2_jdata_writepage()
164 create_empty_buffers(page, inode->i_sb->s_blocksize, in __gfs2_jdata_writepage()
167 gfs2_page_add_databufs(ip, page, 0, sdp->sd_vfs->s_blocksize); in __gfs2_jdata_writepage()
169 return gfs2_write_full_page(page, gfs2_get_block_noalloc, wbc); in __gfs2_jdata_writepage()
181 static int gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc) in gfs2_jdata_writepage() argument
183 struct inode *inode = page->mapping->host; in gfs2_jdata_writepage()
190 if (PageChecked(page) || current->journal_info) in gfs2_jdata_writepage()
192 ret = __gfs2_jdata_writepage(page, wbc); in gfs2_jdata_writepage()
196 redirty_page_for_writepage(wbc, page); in gfs2_jdata_writepage()
198 unlock_page(page); in gfs2_jdata_writepage()
255 struct page *page = pvec->pages[i]; in gfs2_write_jdata_pagevec() local
257 *done_index = page->index; in gfs2_write_jdata_pagevec()
259 lock_page(page); in gfs2_write_jdata_pagevec()
261 if (unlikely(page->mapping != mapping)) { in gfs2_write_jdata_pagevec()
263 unlock_page(page); in gfs2_write_jdata_pagevec()
267 if (!PageDirty(page)) { in gfs2_write_jdata_pagevec()
272 if (PageWriteback(page)) { in gfs2_write_jdata_pagevec()
274 wait_on_page_writeback(page); in gfs2_write_jdata_pagevec()
279 BUG_ON(PageWriteback(page)); in gfs2_write_jdata_pagevec()
280 if (!clear_page_dirty_for_io(page)) in gfs2_write_jdata_pagevec()
285 ret = __gfs2_jdata_writepage(page, wbc); in gfs2_write_jdata_pagevec()
288 unlock_page(page); in gfs2_write_jdata_pagevec()
301 *done_index = page->index + 1; in gfs2_write_jdata_pagevec()
437 static int stuffed_readpage(struct gfs2_inode *ip, struct page *page) in stuffed_readpage() argument
449 if (unlikely(page->index)) { in stuffed_readpage()
450 zero_user(page, 0, PAGE_SIZE); in stuffed_readpage()
451 SetPageUptodate(page); in stuffed_readpage()
459 kaddr = kmap_atomic(page); in stuffed_readpage()
465 flush_dcache_page(page); in stuffed_readpage()
467 SetPageUptodate(page); in stuffed_readpage()
483 static int __gfs2_readpage(void *file, struct page *page) in __gfs2_readpage() argument
485 struct gfs2_inode *ip = GFS2_I(page->mapping->host); in __gfs2_readpage()
486 struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); in __gfs2_readpage()
490 if (i_blocksize(page->mapping->host) == PAGE_SIZE && in __gfs2_readpage()
491 !page_has_buffers(page)) { in __gfs2_readpage()
492 error = iomap_readpage(page, &gfs2_iomap_ops); in __gfs2_readpage()
494 error = stuffed_readpage(ip, page); in __gfs2_readpage()
495 unlock_page(page); in __gfs2_readpage()
497 error = mpage_readpage(page, gfs2_block_map); in __gfs2_readpage()
516 static int gfs2_readpage(struct file *file, struct page *page) in gfs2_readpage() argument
518 struct address_space *mapping = page->mapping; in gfs2_readpage()
523 unlock_page(page); in gfs2_readpage()
529 lock_page(page); in gfs2_readpage()
530 if (page->mapping == mapping && !PageUptodate(page)) in gfs2_readpage()
531 error = __gfs2_readpage(file, page); in gfs2_readpage()
533 unlock_page(page); in gfs2_readpage()
538 lock_page(page); in gfs2_readpage()
559 struct page *page; in gfs2_internal_read() local
566 page = read_cache_page(mapping, index, __gfs2_readpage, NULL); in gfs2_internal_read()
567 if (IS_ERR(page)) in gfs2_internal_read()
568 return PTR_ERR(page); in gfs2_internal_read()
569 p = kmap_atomic(page); in gfs2_internal_read()
572 put_page(page); in gfs2_internal_read()
674 static int jdata_set_page_dirty(struct page *page) in jdata_set_page_dirty() argument
676 SetPageChecked(page); in jdata_set_page_dirty()
677 return __set_page_dirty_buffers(page); in jdata_set_page_dirty()
729 static void gfs2_invalidatepage(struct page *page, unsigned int offset, in gfs2_invalidatepage() argument
732 struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); in gfs2_invalidatepage()
738 BUG_ON(!PageLocked(page)); in gfs2_invalidatepage()
740 ClearPageChecked(page); in gfs2_invalidatepage()
741 if (!page_has_buffers(page)) in gfs2_invalidatepage()
744 bh = head = page_buffers(page); in gfs2_invalidatepage()
756 try_to_release_page(page, 0); in gfs2_invalidatepage()
770 int gfs2_releasepage(struct page *page, gfp_t gfp_mask) in gfs2_releasepage() argument
772 struct address_space *mapping = page->mapping; in gfs2_releasepage()
777 if (!page_has_buffers(page)) in gfs2_releasepage()
792 head = bh = page_buffers(page); in gfs2_releasepage()
805 head = bh = page_buffers(page); in gfs2_releasepage()
821 return try_to_free_buffers(page); in gfs2_releasepage()