Lines Matching refs:page

58 static inline void nilfs_put_page(struct page *page)  in nilfs_put_page()  argument
60 kunmap(page); in nilfs_put_page()
61 page_cache_release(page); in nilfs_put_page()
83 static int nilfs_prepare_chunk(struct page *page, unsigned from, unsigned to) in nilfs_prepare_chunk() argument
85 loff_t pos = page_offset(page) + from; in nilfs_prepare_chunk()
86 return __block_write_begin(page, pos, to - from, nilfs_get_block); in nilfs_prepare_chunk()
89 static void nilfs_commit_chunk(struct page *page, in nilfs_commit_chunk() argument
94 loff_t pos = page_offset(page) + from; in nilfs_commit_chunk()
99 nr_dirty = nilfs_page_count_clean_buffers(page, from, to); in nilfs_commit_chunk()
100 copied = block_write_end(NULL, mapping, pos, len, len, page, NULL); in nilfs_commit_chunk()
107 unlock_page(page); in nilfs_commit_chunk()
110 static void nilfs_check_page(struct page *page) in nilfs_check_page() argument
112 struct inode *dir = page->mapping->host; in nilfs_check_page()
115 char *kaddr = page_address(page); in nilfs_check_page()
121 if ((dir->i_size >> PAGE_CACHE_SHIFT) == page->index) { in nilfs_check_page()
144 SetPageChecked(page); in nilfs_check_page()
169 dir->i_ino, error, (page->index<<PAGE_CACHE_SHIFT)+offs, in nilfs_check_page()
178 dir->i_ino, (page->index<<PAGE_CACHE_SHIFT)+offs, in nilfs_check_page()
181 SetPageChecked(page); in nilfs_check_page()
182 SetPageError(page); in nilfs_check_page()
185 static struct page *nilfs_get_page(struct inode *dir, unsigned long n) in nilfs_get_page()
188 struct page *page = read_mapping_page(mapping, n, NULL); in nilfs_get_page() local
190 if (!IS_ERR(page)) { in nilfs_get_page()
191 kmap(page); in nilfs_get_page()
192 if (!PageChecked(page)) in nilfs_get_page()
193 nilfs_check_page(page); in nilfs_get_page()
194 if (PageError(page)) in nilfs_get_page()
197 return page; in nilfs_get_page()
200 nilfs_put_page(page); in nilfs_get_page()
275 struct page *page = nilfs_get_page(inode, n); in nilfs_readdir() local
277 if (IS_ERR(page)) { in nilfs_readdir()
283 kaddr = page_address(page); in nilfs_readdir()
291 nilfs_put_page(page); in nilfs_readdir()
304 nilfs_put_page(page); in nilfs_readdir()
310 nilfs_put_page(page); in nilfs_readdir()
325 struct page **res_page) in nilfs_find_entry()
332 struct page *page = NULL; in nilfs_find_entry() local
348 page = nilfs_get_page(dir, n); in nilfs_find_entry()
349 if (!IS_ERR(page)) { in nilfs_find_entry()
350 kaddr = page_address(page); in nilfs_find_entry()
357 nilfs_put_page(page); in nilfs_find_entry()
364 nilfs_put_page(page); in nilfs_find_entry()
381 *res_page = page; in nilfs_find_entry()
386 struct nilfs_dir_entry *nilfs_dotdot(struct inode *dir, struct page **p) in nilfs_dotdot()
388 struct page *page = nilfs_get_page(dir, 0); in nilfs_dotdot() local
391 if (!IS_ERR(page)) { in nilfs_dotdot()
393 (struct nilfs_dir_entry *)page_address(page)); in nilfs_dotdot()
394 *p = page; in nilfs_dotdot()
403 struct page *page; in nilfs_inode_by_name() local
405 de = nilfs_find_entry(dir, qstr, &page); in nilfs_inode_by_name()
408 kunmap(page); in nilfs_inode_by_name()
409 page_cache_release(page); in nilfs_inode_by_name()
416 struct page *page, struct inode *inode) in nilfs_set_link() argument
418 unsigned from = (char *) de - (char *) page_address(page); in nilfs_set_link()
420 struct address_space *mapping = page->mapping; in nilfs_set_link()
423 lock_page(page); in nilfs_set_link()
424 err = nilfs_prepare_chunk(page, from, to); in nilfs_set_link()
428 nilfs_commit_chunk(page, mapping, from, to); in nilfs_set_link()
429 nilfs_put_page(page); in nilfs_set_link()
444 struct page *page = NULL; in nilfs_add_link() local
460 page = nilfs_get_page(dir, n); in nilfs_add_link()
461 err = PTR_ERR(page); in nilfs_add_link()
462 if (IS_ERR(page)) in nilfs_add_link()
464 lock_page(page); in nilfs_add_link()
465 kaddr = page_address(page); in nilfs_add_link()
495 unlock_page(page); in nilfs_add_link()
496 nilfs_put_page(page); in nilfs_add_link()
502 from = (char *)de - (char *)page_address(page); in nilfs_add_link()
504 err = nilfs_prepare_chunk(page, from, to); in nilfs_add_link()
519 nilfs_commit_chunk(page, page->mapping, from, to); in nilfs_add_link()
524 nilfs_put_page(page); in nilfs_add_link()
528 unlock_page(page); in nilfs_add_link()
536 int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct page *page) in nilfs_delete_entry() argument
538 struct address_space *mapping = page->mapping; in nilfs_delete_entry()
540 char *kaddr = page_address(page); in nilfs_delete_entry()
559 from = (char *)pde - (char *)page_address(page); in nilfs_delete_entry()
560 lock_page(page); in nilfs_delete_entry()
561 err = nilfs_prepare_chunk(page, from, to); in nilfs_delete_entry()
566 nilfs_commit_chunk(page, mapping, from, to); in nilfs_delete_entry()
569 nilfs_put_page(page); in nilfs_delete_entry()
579 struct page *page = grab_cache_page(mapping, 0); in nilfs_make_empty() local
585 if (!page) in nilfs_make_empty()
588 err = nilfs_prepare_chunk(page, 0, chunk_size); in nilfs_make_empty()
590 unlock_page(page); in nilfs_make_empty()
593 kaddr = kmap_atomic(page); in nilfs_make_empty()
609 nilfs_commit_chunk(page, mapping, 0, chunk_size); in nilfs_make_empty()
611 page_cache_release(page); in nilfs_make_empty()
620 struct page *page = NULL; in nilfs_empty_dir() local
627 page = nilfs_get_page(inode, i); in nilfs_empty_dir()
628 if (IS_ERR(page)) in nilfs_empty_dir()
631 kaddr = page_address(page); in nilfs_empty_dir()
657 nilfs_put_page(page); in nilfs_empty_dir()
662 nilfs_put_page(page); in nilfs_empty_dir()