Lines Matching refs:page
67 static inline void ext2_put_page(struct page *page) in ext2_put_page() argument
69 kunmap(page); in ext2_put_page()
70 page_cache_release(page); in ext2_put_page()
93 static int ext2_commit_chunk(struct page *page, loff_t pos, unsigned len) in ext2_commit_chunk() argument
95 struct address_space *mapping = page->mapping; in ext2_commit_chunk()
100 block_write_end(NULL, mapping, pos, len, len, page, NULL); in ext2_commit_chunk()
108 err = write_one_page(page, 1); in ext2_commit_chunk()
112 unlock_page(page); in ext2_commit_chunk()
118 static void ext2_check_page(struct page *page, int quiet) in ext2_check_page() argument
120 struct inode *dir = page->mapping->host; in ext2_check_page()
123 char *kaddr = page_address(page); in ext2_check_page()
130 if ((dir->i_size >> PAGE_CACHE_SHIFT) == page->index) { in ext2_check_page()
155 SetPageChecked(page); in ext2_check_page()
184 dir->i_ino, error, (page->index<<PAGE_CACHE_SHIFT)+offs, in ext2_check_page()
194 dir->i_ino, (page->index<<PAGE_CACHE_SHIFT)+offs, in ext2_check_page()
198 SetPageChecked(page); in ext2_check_page()
199 SetPageError(page); in ext2_check_page()
202 static struct page * ext2_get_page(struct inode *dir, unsigned long n, in ext2_get_page()
206 struct page *page = read_mapping_page(mapping, n, NULL); in ext2_get_page() local
207 if (!IS_ERR(page)) { in ext2_get_page()
208 kmap(page); in ext2_get_page()
209 if (!PageChecked(page)) in ext2_get_page()
210 ext2_check_page(page, quiet); in ext2_get_page()
211 if (PageError(page)) in ext2_get_page()
214 return page; in ext2_get_page()
217 ext2_put_page(page); in ext2_get_page()
311 struct page *page = ext2_get_page(inode, n, 0); in ext2_readdir() local
313 if (IS_ERR(page)) { in ext2_readdir()
318 return PTR_ERR(page); in ext2_readdir()
320 kaddr = page_address(page); in ext2_readdir()
335 ext2_put_page(page); in ext2_readdir()
347 ext2_put_page(page); in ext2_readdir()
353 ext2_put_page(page); in ext2_readdir()
367 struct qstr *child, struct page ** res_page) in ext2_find_entry()
374 struct page *page = NULL; in ext2_find_entry() local
391 page = ext2_get_page(dir, n, dir_has_error); in ext2_find_entry()
392 if (!IS_ERR(page)) { in ext2_find_entry()
393 kaddr = page_address(page); in ext2_find_entry()
400 ext2_put_page(page); in ext2_find_entry()
407 ext2_put_page(page); in ext2_find_entry()
426 *res_page = page; in ext2_find_entry()
431 struct ext2_dir_entry_2 * ext2_dotdot (struct inode *dir, struct page **p) in ext2_dotdot()
433 struct page *page = ext2_get_page(dir, 0, 0); in ext2_dotdot() local
436 if (!IS_ERR(page)) { in ext2_dotdot()
437 de = ext2_next_entry((ext2_dirent *) page_address(page)); in ext2_dotdot()
438 *p = page; in ext2_dotdot()
447 struct page *page; in ext2_inode_by_name() local
449 de = ext2_find_entry (dir, child, &page); in ext2_inode_by_name()
452 ext2_put_page(page); in ext2_inode_by_name()
457 static int ext2_prepare_chunk(struct page *page, loff_t pos, unsigned len) in ext2_prepare_chunk() argument
459 return __block_write_begin(page, pos, len, ext2_get_block); in ext2_prepare_chunk()
464 struct page *page, struct inode *inode, int update_times) in ext2_set_link() argument
466 loff_t pos = page_offset(page) + in ext2_set_link()
467 (char *) de - (char *) page_address(page); in ext2_set_link()
471 lock_page(page); in ext2_set_link()
472 err = ext2_prepare_chunk(page, pos, len); in ext2_set_link()
476 err = ext2_commit_chunk(page, pos, len); in ext2_set_link()
477 ext2_put_page(page); in ext2_set_link()
495 struct page *page = NULL; in ext2_add_link() local
511 page = ext2_get_page(dir, n, 0); in ext2_add_link()
512 err = PTR_ERR(page); in ext2_add_link()
513 if (IS_ERR(page)) in ext2_add_link()
515 lock_page(page); in ext2_add_link()
516 kaddr = page_address(page); in ext2_add_link()
546 unlock_page(page); in ext2_add_link()
547 ext2_put_page(page); in ext2_add_link()
553 pos = page_offset(page) + in ext2_add_link()
554 (char*)de - (char*)page_address(page); in ext2_add_link()
555 err = ext2_prepare_chunk(page, pos, rec_len); in ext2_add_link()
568 err = ext2_commit_chunk(page, pos, rec_len); in ext2_add_link()
574 ext2_put_page(page); in ext2_add_link()
578 unlock_page(page); in ext2_add_link()
586 int ext2_delete_entry (struct ext2_dir_entry_2 * dir, struct page * page ) in ext2_delete_entry() argument
588 struct inode *inode = page->mapping->host; in ext2_delete_entry()
589 char *kaddr = page_address(page); in ext2_delete_entry()
609 from = (char*)pde - (char*)page_address(page); in ext2_delete_entry()
610 pos = page_offset(page) + from; in ext2_delete_entry()
611 lock_page(page); in ext2_delete_entry()
612 err = ext2_prepare_chunk(page, pos, to - from); in ext2_delete_entry()
617 err = ext2_commit_chunk(page, pos, to - from); in ext2_delete_entry()
622 ext2_put_page(page); in ext2_delete_entry()
631 struct page *page = grab_cache_page(inode->i_mapping, 0); in ext2_make_empty() local
637 if (!page) in ext2_make_empty()
640 err = ext2_prepare_chunk(page, 0, chunk_size); in ext2_make_empty()
642 unlock_page(page); in ext2_make_empty()
645 kaddr = kmap_atomic(page); in ext2_make_empty()
661 err = ext2_commit_chunk(page, 0, chunk_size); in ext2_make_empty()
663 page_cache_release(page); in ext2_make_empty()
672 struct page *page = NULL; in ext2_empty_dir() local
679 page = ext2_get_page(inode, i, dir_has_error); in ext2_empty_dir()
681 if (IS_ERR(page)) { in ext2_empty_dir()
686 kaddr = page_address(page); in ext2_empty_dir()
712 ext2_put_page(page); in ext2_empty_dir()
717 ext2_put_page(page); in ext2_empty_dir()