Lines Matching refs:page

16  * Migration to usage of "page cache" on May 2006 by
45 static void ufs_commit_chunk(struct page *page, loff_t pos, unsigned len)
47 struct address_space *mapping = page->mapping;
51 block_write_end(NULL, mapping, pos, len, len, page, NULL);
56 unlock_page(page);
69 static inline void ufs_put_page(struct page *page)
71 kunmap(page);
72 put_page(page);
79 struct page *page;
81 de = ufs_find_entry(dir, qstr, &page);
84 ufs_put_page(page);
90 /* Releases the page */
92 struct page *page, struct inode *inode,
95 loff_t pos = page_offset(page) +
96 (char *) de - (char *) page_address(page);
100 lock_page(page);
101 err = ufs_prepare_chunk(page, pos, len);
107 ufs_commit_chunk(page, pos, len);
108 ufs_put_page(page);
116 static bool ufs_check_page(struct page *page)
118 struct inode *dir = page->mapping->host;
120 char *kaddr = page_address(page);
127 if ((dir->i_size >> PAGE_SHIFT) == page->index) {
153 SetPageChecked(page);
181 dir->i_ino, error, (page->index<<PAGE_SHIFT)+offs,
187 "entry in directory #%lu spans the page boundary"
189 dir->i_ino, (page->index<<PAGE_SHIFT)+offs);
191 SetPageError(page);
195 static struct page *ufs_get_page(struct inode *dir, unsigned long n)
198 struct page *page = read_mapping_page(mapping, n, NULL);
199 if (!IS_ERR(page)) {
200 kmap(page);
201 if (unlikely(!PageChecked(page))) {
202 if (!ufs_check_page(page))
206 return page;
209 ufs_put_page(page);
214 * Return the offset into page `page_nr' of the last valid
215 * byte in that page, plus one.
235 struct ufs_dir_entry *ufs_dotdot(struct inode *dir, struct page **p)
237 struct page *page = ufs_get_page(dir, 0);
240 if (!IS_ERR(page)) {
242 (struct ufs_dir_entry *)page_address(page));
243 *p = page;
252 * returns the page in which the entry was found, and the entry itself
257 struct page **res_page)
265 struct page *page = NULL;
284 page = ufs_get_page(dir, n);
285 if (!IS_ERR(page)) {
286 kaddr = page_address(page);
294 ufs_put_page(page);
303 *res_page = page;
320 struct page *page = NULL;
332 * This code plays outside i_size, so it locks the page
338 page = ufs_get_page(dir, n);
339 err = PTR_ERR(page);
340 if (IS_ERR(page))
342 lock_page(page);
343 kaddr = page_address(page);
373 unlock_page(page);
374 ufs_put_page(page);
380 pos = page_offset(page) +
381 (char*)de - (char*)page_address(page);
382 err = ufs_prepare_chunk(page, pos, rec_len);
399 ufs_commit_chunk(page, pos, rec_len);
406 ufs_put_page(page);
410 unlock_page(page);
451 struct page *page = ufs_get_page(inode, n);
453 if (IS_ERR(page)) {
455 "bad page in #%lu",
460 kaddr = page_address(page);
486 ufs_put_page(page);
492 ufs_put_page(page);
503 struct page * page)
506 char *kaddr = page_address(page);
532 from = (char*)pde - (char*)page_address(page);
534 pos = page_offset(page) + from;
535 lock_page(page);
536 err = ufs_prepare_chunk(page, pos, to - from);
541 ufs_commit_chunk(page, pos, to - from);
546 ufs_put_page(page);
555 struct page *page = grab_cache_page(mapping, 0);
561 if (!page)
564 err = ufs_prepare_chunk(page, 0, chunk_size);
566 unlock_page(page);
570 kmap(page);
571 base = (char*)page_address(page);
588 kunmap(page);
590 ufs_commit_chunk(page, 0, chunk_size);
593 put_page(page);
603 struct page *page = NULL;
609 page = ufs_get_page(inode, i);
611 if (IS_ERR(page))
614 kaddr = page_address(page);
641 ufs_put_page(page);
646 ufs_put_page(page);