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()
88 static int ext2_commit_chunk(struct page *page, loff_t pos, unsigned len) in ext2_commit_chunk() argument
90 struct address_space *mapping = page->mapping; in ext2_commit_chunk()
95 block_write_end(NULL, mapping, pos, len, len, page, NULL); in ext2_commit_chunk()
103 err = write_one_page(page, 1); in ext2_commit_chunk()
107 unlock_page(page); in ext2_commit_chunk()
113 static void ext2_check_page(struct page *page, int quiet) in ext2_check_page() argument
115 struct inode *dir = page->mapping->host; in ext2_check_page()
118 char *kaddr = page_address(page); in ext2_check_page()
125 if ((dir->i_size >> PAGE_CACHE_SHIFT) == page->index) { in ext2_check_page()
150 SetPageChecked(page); in ext2_check_page()
179 dir->i_ino, error, (page->index<<PAGE_CACHE_SHIFT)+offs, in ext2_check_page()
189 dir->i_ino, (page->index<<PAGE_CACHE_SHIFT)+offs, in ext2_check_page()
193 SetPageChecked(page); in ext2_check_page()
194 SetPageError(page); in ext2_check_page()
197 static struct page * ext2_get_page(struct inode *dir, unsigned long n, in ext2_get_page()
201 struct page *page = read_mapping_page(mapping, n, NULL); in ext2_get_page() local
202 if (!IS_ERR(page)) { in ext2_get_page()
203 kmap(page); in ext2_get_page()
204 if (!PageChecked(page)) in ext2_get_page()
205 ext2_check_page(page, quiet); in ext2_get_page()
206 if (PageError(page)) in ext2_get_page()
209 return page; in ext2_get_page()
212 ext2_put_page(page); in ext2_get_page()
306 struct page *page = ext2_get_page(inode, n, 0); in ext2_readdir() local
308 if (IS_ERR(page)) { in ext2_readdir()
313 return PTR_ERR(page); in ext2_readdir()
315 kaddr = page_address(page); in ext2_readdir()
330 ext2_put_page(page); in ext2_readdir()
342 ext2_put_page(page); in ext2_readdir()
348 ext2_put_page(page); in ext2_readdir()
362 struct qstr *child, struct page ** res_page) in ext2_find_entry()
369 struct page *page = NULL; in ext2_find_entry() local
386 page = ext2_get_page(dir, n, dir_has_error); in ext2_find_entry()
387 if (!IS_ERR(page)) { in ext2_find_entry()
388 kaddr = page_address(page); in ext2_find_entry()
395 ext2_put_page(page); in ext2_find_entry()
402 ext2_put_page(page); in ext2_find_entry()
421 *res_page = page; in ext2_find_entry()
426 struct ext2_dir_entry_2 * ext2_dotdot (struct inode *dir, struct page **p) in ext2_dotdot()
428 struct page *page = ext2_get_page(dir, 0, 0); in ext2_dotdot() local
431 if (!IS_ERR(page)) { in ext2_dotdot()
432 de = ext2_next_entry((ext2_dirent *) page_address(page)); in ext2_dotdot()
433 *p = page; in ext2_dotdot()
442 struct page *page; in ext2_inode_by_name() local
444 de = ext2_find_entry (dir, child, &page); in ext2_inode_by_name()
447 ext2_put_page(page); in ext2_inode_by_name()
452 static int ext2_prepare_chunk(struct page *page, loff_t pos, unsigned len) in ext2_prepare_chunk() argument
454 return __block_write_begin(page, pos, len, ext2_get_block); in ext2_prepare_chunk()
459 struct page *page, struct inode *inode, int update_times) in ext2_set_link() argument
461 loff_t pos = page_offset(page) + in ext2_set_link()
462 (char *) de - (char *) page_address(page); in ext2_set_link()
466 lock_page(page); in ext2_set_link()
467 err = ext2_prepare_chunk(page, pos, len); in ext2_set_link()
471 err = ext2_commit_chunk(page, pos, len); in ext2_set_link()
472 ext2_put_page(page); in ext2_set_link()
490 struct page *page = NULL; in ext2_add_link() local
506 page = ext2_get_page(dir, n, 0); in ext2_add_link()
507 err = PTR_ERR(page); in ext2_add_link()
508 if (IS_ERR(page)) in ext2_add_link()
510 lock_page(page); in ext2_add_link()
511 kaddr = page_address(page); in ext2_add_link()
541 unlock_page(page); in ext2_add_link()
542 ext2_put_page(page); in ext2_add_link()
548 pos = page_offset(page) + in ext2_add_link()
549 (char*)de - (char*)page_address(page); in ext2_add_link()
550 err = ext2_prepare_chunk(page, pos, rec_len); in ext2_add_link()
563 err = ext2_commit_chunk(page, pos, rec_len); in ext2_add_link()
569 ext2_put_page(page); in ext2_add_link()
573 unlock_page(page); in ext2_add_link()
581 int ext2_delete_entry (struct ext2_dir_entry_2 * dir, struct page * page ) in ext2_delete_entry() argument
583 struct inode *inode = page->mapping->host; in ext2_delete_entry()
584 char *kaddr = page_address(page); in ext2_delete_entry()
604 from = (char*)pde - (char*)page_address(page); in ext2_delete_entry()
605 pos = page_offset(page) + from; in ext2_delete_entry()
606 lock_page(page); in ext2_delete_entry()
607 err = ext2_prepare_chunk(page, pos, to - from); in ext2_delete_entry()
612 err = ext2_commit_chunk(page, pos, to - from); in ext2_delete_entry()
617 ext2_put_page(page); in ext2_delete_entry()
626 struct page *page = grab_cache_page(inode->i_mapping, 0); in ext2_make_empty() local
632 if (!page) in ext2_make_empty()
635 err = ext2_prepare_chunk(page, 0, chunk_size); in ext2_make_empty()
637 unlock_page(page); in ext2_make_empty()
640 kaddr = kmap_atomic(page); in ext2_make_empty()
656 err = ext2_commit_chunk(page, 0, chunk_size); in ext2_make_empty()
658 page_cache_release(page); in ext2_make_empty()
667 struct page *page = NULL; in ext2_empty_dir() local
674 page = ext2_get_page(inode, i, dir_has_error); in ext2_empty_dir()
676 if (IS_ERR(page)) { in ext2_empty_dir()
681 kaddr = page_address(page); in ext2_empty_dir()
707 ext2_put_page(page); in ext2_empty_dir()
712 ext2_put_page(page); in ext2_empty_dir()