Lines Matching refs:page
40 void gfs2_page_add_databufs(struct gfs2_inode *ip, struct page *page,
43 struct buffer_head *head = page_buffers(page);
85 * gfs2_writepage - Write page for writeback mappings
86 * @page: The page
89 static int gfs2_writepage(struct page *page, struct writeback_control *wbc)
91 struct inode *inode = page->mapping->host;
100 return iomap_writepage(page, wbc, &wpc, &gfs2_writeback_ops);
103 redirty_page_for_writepage(wbc, page);
105 unlock_page(page);
111 * @page: The page to write
117 static int gfs2_write_jdata_page(struct page *page,
120 struct inode * const inode = page->mapping->host;
126 * The page straddles i_size. It must be zeroed out on each and every
128 * in multiples of the page size. For a file that is not a multiple of
129 * the page size, the remaining memory is zeroed when mapped, and
133 if (page->index == end_index && offset)
134 zero_user_segment(page, offset, PAGE_SIZE);
136 return __block_write_full_page(inode, page, gfs2_get_block_noalloc, wbc,
142 * @page: The page to write
151 static int __gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc)
153 struct inode *inode = page->mapping->host;
156 if (PageChecked(page)) {
157 ClearPageChecked(page);
158 if (!page_has_buffers(page)) {
159 create_empty_buffers(page, inode->i_sb->s_blocksize,
162 gfs2_page_add_databufs(ip, page, 0, PAGE_SIZE);
164 return gfs2_write_jdata_page(page, wbc);
168 * gfs2_jdata_writepage - Write complete page
169 * @page: Page to write
176 static int gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc)
178 struct inode *inode = page->mapping->host;
184 if (PageChecked(page) || current->journal_info)
186 return __gfs2_jdata_writepage(page, wbc);
189 redirty_page_for_writepage(wbc, page);
191 unlock_page(page);
249 struct page *page = pvec->pages[i];
251 *done_index = page->index;
253 lock_page(page);
255 if (unlikely(page->mapping != mapping)) {
257 unlock_page(page);
261 if (!PageDirty(page)) {
266 if (PageWriteback(page)) {
268 wait_on_page_writeback(page);
273 BUG_ON(PageWriteback(page));
274 if (!clear_page_dirty_for_io(page))
279 ret = __gfs2_jdata_writepage(page, wbc);
282 unlock_page(page);
287 * done_index is set past this page,
295 *done_index = page->index + 1;
323 * start transactions before we grab page locks. This allows us
385 * We hit the last page and there is more work to be done: wrap
425 * stuffed_readpage - Fill in a Linux page with stuffed file data
427 * @page: the page
431 static int stuffed_readpage(struct gfs2_inode *ip, struct page *page)
440 * asked for a zero page in the case of a stuffed file being extended,
443 if (unlikely(page->index)) {
444 zero_user(page, 0, PAGE_SIZE);
445 SetPageUptodate(page);
453 kaddr = kmap_atomic(page);
457 flush_dcache_page(page);
459 SetPageUptodate(page);
465 static int __gfs2_readpage(void *file, struct page *page)
467 struct inode *inode = page->mapping->host;
473 (i_blocksize(inode) == PAGE_SIZE && !page_has_buffers(page))) {
474 error = iomap_readpage(page, &gfs2_iomap_ops);
476 error = stuffed_readpage(ip, page);
477 unlock_page(page);
479 error = mpage_readpage(page, gfs2_block_map);
489 * gfs2_readpage - read a page of a file
491 * @page: The page of the file
494 static int gfs2_readpage(struct file *file, struct page *page)
496 return __gfs2_readpage(file, page);
516 struct page *page;
523 page = read_cache_page(mapping, index, __gfs2_readpage, NULL);
524 if (IS_ERR(page))
525 return PTR_ERR(page);
526 p = kmap_atomic(page);
529 put_page(page);
548 * the page lock and the glock) and return having done no I/O. Its
616 * @page: The page to dirty
618 * Returns: 1 if it dirtyed the page, or 0 otherwise
621 static int jdata_set_page_dirty(struct page *page)
624 SetPageChecked(page);
625 return __set_page_dirty_buffers(page);
680 static void gfs2_invalidatepage(struct page *page, unsigned int offset,
683 struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host);
689 BUG_ON(!PageLocked(page));
691 ClearPageChecked(page);
692 if (!page_has_buffers(page))
695 bh = head = page_buffers(page);
707 try_to_release_page(page, 0);
711 * gfs2_releasepage - free the metadata associated with a page
712 * @page: the page that's being released
715 * Calls try_to_free_buffers() to free the buffers and put the page if the
718 * Returns: 1 if the page was put or else 0
721 int gfs2_releasepage(struct page *page, gfp_t gfp_mask)
723 struct address_space *mapping = page->mapping;
728 if (!page_has_buffers(page))
742 head = bh = page_buffers(page);
754 head = bh = page_buffers(page);
775 return try_to_free_buffers(page);