Lines Matching refs:page
45 static int ufs_commit_chunk(struct page *page, loff_t pos, unsigned len) in ufs_commit_chunk() argument
47 struct address_space *mapping = page->mapping; in ufs_commit_chunk()
52 block_write_end(NULL, mapping, pos, len, len, page, NULL); in ufs_commit_chunk()
58 err = write_one_page(page); in ufs_commit_chunk()
60 unlock_page(page); in ufs_commit_chunk()
64 static inline void ufs_put_page(struct page *page) in ufs_put_page() argument
66 kunmap(page); in ufs_put_page()
67 put_page(page); in ufs_put_page()
74 struct page *page; in ufs_inode_by_name() local
76 de = ufs_find_entry(dir, qstr, &page); in ufs_inode_by_name()
79 ufs_put_page(page); in ufs_inode_by_name()
87 struct page *page, struct inode *inode, in ufs_set_link() argument
90 loff_t pos = page_offset(page) + in ufs_set_link()
91 (char *) de - (char *) page_address(page); in ufs_set_link()
95 lock_page(page); in ufs_set_link()
96 err = ufs_prepare_chunk(page, pos, len); in ufs_set_link()
102 err = ufs_commit_chunk(page, pos, len); in ufs_set_link()
103 ufs_put_page(page); in ufs_set_link()
110 static bool ufs_check_page(struct page *page) in ufs_check_page() argument
112 struct inode *dir = page->mapping->host; in ufs_check_page()
114 char *kaddr = page_address(page); in ufs_check_page()
121 if ((dir->i_size >> PAGE_SHIFT) == page->index) { in ufs_check_page()
147 SetPageChecked(page); in ufs_check_page()
175 dir->i_ino, error, (page->index<<PAGE_SHIFT)+offs, in ufs_check_page()
183 dir->i_ino, (page->index<<PAGE_SHIFT)+offs); in ufs_check_page()
185 SetPageError(page); in ufs_check_page()
189 static struct page *ufs_get_page(struct inode *dir, unsigned long n) in ufs_get_page()
192 struct page *page = read_mapping_page(mapping, n, NULL); in ufs_get_page() local
193 if (!IS_ERR(page)) { in ufs_get_page()
194 kmap(page); in ufs_get_page()
195 if (unlikely(!PageChecked(page))) { in ufs_get_page()
196 if (PageError(page) || !ufs_check_page(page)) in ufs_get_page()
200 return page; in ufs_get_page()
203 ufs_put_page(page); in ufs_get_page()
229 struct ufs_dir_entry *ufs_dotdot(struct inode *dir, struct page **p) in ufs_dotdot()
231 struct page *page = ufs_get_page(dir, 0); in ufs_dotdot() local
234 if (!IS_ERR(page)) { in ufs_dotdot()
236 (struct ufs_dir_entry *)page_address(page)); in ufs_dotdot()
237 *p = page; in ufs_dotdot()
251 struct page **res_page) in ufs_find_entry()
259 struct page *page = NULL; in ufs_find_entry() local
278 page = ufs_get_page(dir, n); in ufs_find_entry()
279 if (!IS_ERR(page)) { in ufs_find_entry()
280 kaddr = page_address(page); in ufs_find_entry()
288 ufs_put_page(page); in ufs_find_entry()
297 *res_page = page; in ufs_find_entry()
314 struct page *page = NULL; in ufs_add_link() local
332 page = ufs_get_page(dir, n); in ufs_add_link()
333 err = PTR_ERR(page); in ufs_add_link()
334 if (IS_ERR(page)) in ufs_add_link()
336 lock_page(page); in ufs_add_link()
337 kaddr = page_address(page); in ufs_add_link()
367 unlock_page(page); in ufs_add_link()
368 ufs_put_page(page); in ufs_add_link()
374 pos = page_offset(page) + in ufs_add_link()
375 (char*)de - (char*)page_address(page); in ufs_add_link()
376 err = ufs_prepare_chunk(page, pos, rec_len); in ufs_add_link()
393 err = ufs_commit_chunk(page, pos, rec_len); in ufs_add_link()
399 ufs_put_page(page); in ufs_add_link()
403 unlock_page(page); in ufs_add_link()
444 struct page *page = ufs_get_page(inode, n); in ufs_readdir() local
446 if (IS_ERR(page)) { in ufs_readdir()
453 kaddr = page_address(page); in ufs_readdir()
479 ufs_put_page(page); in ufs_readdir()
485 ufs_put_page(page); in ufs_readdir()
496 struct page * page) in ufs_delete_entry() argument
499 char *kaddr = page_address(page); in ufs_delete_entry()
525 from = (char*)pde - (char*)page_address(page); in ufs_delete_entry()
527 pos = page_offset(page) + from; in ufs_delete_entry()
528 lock_page(page); in ufs_delete_entry()
529 err = ufs_prepare_chunk(page, pos, to - from); in ufs_delete_entry()
534 err = ufs_commit_chunk(page, pos, to - from); in ufs_delete_entry()
538 ufs_put_page(page); in ufs_delete_entry()
547 struct page *page = grab_cache_page(mapping, 0); in ufs_make_empty() local
553 if (!page) in ufs_make_empty()
556 err = ufs_prepare_chunk(page, 0, chunk_size); in ufs_make_empty()
558 unlock_page(page); in ufs_make_empty()
562 kmap(page); in ufs_make_empty()
563 base = (char*)page_address(page); in ufs_make_empty()
580 kunmap(page); in ufs_make_empty()
582 err = ufs_commit_chunk(page, 0, chunk_size); in ufs_make_empty()
584 put_page(page); in ufs_make_empty()
594 struct page *page = NULL; in ufs_empty_dir() local
600 page = ufs_get_page(inode, i); in ufs_empty_dir()
602 if (IS_ERR(page)) in ufs_empty_dir()
605 kaddr = page_address(page); in ufs_empty_dir()
632 ufs_put_page(page); in ufs_empty_dir()
637 ufs_put_page(page); in ufs_empty_dir()