Lines Matching refs:page

16 #include <linux/page-flags.h>
28 * Get one page from cache or lower f/s, return error otherwise.
30 * Returns locked and up-to-date page (if ok), with increased
33 struct page *ecryptfs_get_locked_page(struct inode *inode, loff_t index)
35 struct page *page = read_mapping_page(inode->i_mapping, index, NULL);
36 if (!IS_ERR(page))
37 lock_page(page);
38 return page;
43 * @page: Page that is locked before this call is made
52 static int ecryptfs_writepage(struct page *page, struct writeback_control *wbc)
56 rc = ecryptfs_encrypt_page(page);
59 "page (upper index [0x%.16lx])\n", page->index);
60 ClearPageUptodate(page);
63 SetPageUptodate(page);
65 unlock_page(page);
100 * @page: Sort of a ``virtual'' representation of the encrypted lower
109 ecryptfs_copy_up_encrypted_with_header(struct page *page,
118 loff_t view_extent_num = ((((loff_t)page->index)
128 page_virt = kmap_local_page(page);
135 page_virt, page->mapping->host);
142 flush_dcache_page(page);
155 page, (lower_offset >> PAGE_SHIFT),
157 crypt_stat->extent_size, page->mapping->host);
183 struct page *page = &folio->page;
185 &ecryptfs_inode_to_private(page->mapping->host)->crypt_stat;
189 rc = ecryptfs_read_lower_page_segment(page, page->index, 0,
191 page->mapping->host);
194 rc = ecryptfs_copy_up_encrypted_with_header(page,
207 page, page->index, 0, PAGE_SIZE,
208 page->mapping->host);
210 printk(KERN_ERR "Error reading page; rc = "
216 rc = ecryptfs_decrypt_page(page);
218 ecryptfs_printk(KERN_ERR, "Error decrypting page; "
225 ClearPageUptodate(page);
227 SetPageUptodate(page);
228 ecryptfs_printk(KERN_DEBUG, "Unlocking page with index = [0x%.16lx]\n",
229 page->index);
230 unlock_page(page);
237 static int fill_zeros_to_end_of_page(struct page *page, unsigned int to)
239 struct inode *inode = page->mapping->host;
242 if ((i_size_read(inode) / PAGE_SIZE) != page->index)
247 zero_user_segment(page, end_byte_in_page, PAGE_SIZE);
258 * @pagep: Pointer to return the page
268 struct page **pagep, void **fsdata)
271 struct page *page;
275 page = grab_cache_page_write_begin(mapping, index);
276 if (!page)
278 *pagep = page;
281 if (!PageUptodate(page)) {
287 page, index, 0, PAGE_SIZE, mapping->host);
290 "lower page segment; rc = [%d]\n",
292 ClearPageUptodate(page);
295 SetPageUptodate(page);
299 page, crypt_stat);
307 ClearPageUptodate(page);
310 SetPageUptodate(page);
313 page, index, 0, PAGE_SIZE,
317 "page; rc = [%d]\n",
319 ClearPageUptodate(page);
322 SetPageUptodate(page);
326 >= i_size_read(page->mapping->host)) {
327 zero_user(page, 0, PAGE_SIZE);
328 SetPageUptodate(page);
330 rc = ecryptfs_decrypt_page(page);
333 "page at index [%ld]; "
335 __func__, page->index, rc);
336 ClearPageUptodate(page);
339 SetPageUptodate(page);
343 /* If creating a page or more of holes, zero them out via truncate.
346 if (prev_page_end_size > i_size_read(page->mapping->host)) {
358 /* Writing to a new page, and creating a small hole from start
359 * of page? Zero it out. */
362 zero_user(page, 0, PAGE_SIZE);
365 unlock_page(page);
366 put_page(page);
460 * @page: The eCryptfs page
466 struct page *page, void *fsdata)
477 "(page w/ index = [0x%.16lx], to = [%d])\n", index, to);
479 rc = ecryptfs_write_lower_page_segment(ecryptfs_inode, page, 0,
488 if (!PageUptodate(page)) {
493 SetPageUptodate(page);
496 rc = fill_zeros_to_end_of_page(page, to);
499 "zeros in page with index = [0x%.16lx]\n", index);
502 rc = ecryptfs_encrypt_page(page);
504 ecryptfs_printk(KERN_WARNING, "Error encrypting page (upper "
521 unlock_page(page);
522 put_page(page);