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()
78 static int nilfs_prepare_chunk(struct page *page, unsigned from, unsigned to) in nilfs_prepare_chunk() argument
80 loff_t pos = page_offset(page) + from; in nilfs_prepare_chunk()
81 return __block_write_begin(page, pos, to - from, nilfs_get_block); in nilfs_prepare_chunk()
84 static void nilfs_commit_chunk(struct page *page, in nilfs_commit_chunk() argument
89 loff_t pos = page_offset(page) + from; in nilfs_commit_chunk()
94 nr_dirty = nilfs_page_count_clean_buffers(page, from, to); in nilfs_commit_chunk()
95 copied = block_write_end(NULL, mapping, pos, len, len, page, NULL); in nilfs_commit_chunk()
102 unlock_page(page); in nilfs_commit_chunk()
105 static void nilfs_check_page(struct page *page) in nilfs_check_page() argument
107 struct inode *dir = page->mapping->host; in nilfs_check_page()
110 char *kaddr = page_address(page); in nilfs_check_page()
116 if ((dir->i_size >> PAGE_CACHE_SHIFT) == page->index) { in nilfs_check_page()
139 SetPageChecked(page); in nilfs_check_page()
164 dir->i_ino, error, (page->index<<PAGE_CACHE_SHIFT)+offs, in nilfs_check_page()
173 dir->i_ino, (page->index<<PAGE_CACHE_SHIFT)+offs, in nilfs_check_page()
176 SetPageChecked(page); in nilfs_check_page()
177 SetPageError(page); in nilfs_check_page()
180 static struct page *nilfs_get_page(struct inode *dir, unsigned long n) in nilfs_get_page()
183 struct page *page = read_mapping_page(mapping, n, NULL); in nilfs_get_page() local
185 if (!IS_ERR(page)) { in nilfs_get_page()
186 kmap(page); in nilfs_get_page()
187 if (!PageChecked(page)) in nilfs_get_page()
188 nilfs_check_page(page); in nilfs_get_page()
189 if (PageError(page)) in nilfs_get_page()
192 return page; in nilfs_get_page()
195 nilfs_put_page(page); in nilfs_get_page()
270 struct page *page = nilfs_get_page(inode, n); in nilfs_readdir() local
272 if (IS_ERR(page)) { in nilfs_readdir()
278 kaddr = page_address(page); in nilfs_readdir()
286 nilfs_put_page(page); in nilfs_readdir()
299 nilfs_put_page(page); in nilfs_readdir()
305 nilfs_put_page(page); in nilfs_readdir()
320 struct page **res_page) in nilfs_find_entry()
327 struct page *page = NULL; in nilfs_find_entry() local
343 page = nilfs_get_page(dir, n); in nilfs_find_entry()
344 if (!IS_ERR(page)) { in nilfs_find_entry()
345 kaddr = page_address(page); in nilfs_find_entry()
352 nilfs_put_page(page); in nilfs_find_entry()
359 nilfs_put_page(page); in nilfs_find_entry()
376 *res_page = page; in nilfs_find_entry()
381 struct nilfs_dir_entry *nilfs_dotdot(struct inode *dir, struct page **p) in nilfs_dotdot()
383 struct page *page = nilfs_get_page(dir, 0); in nilfs_dotdot() local
386 if (!IS_ERR(page)) { in nilfs_dotdot()
388 (struct nilfs_dir_entry *)page_address(page)); in nilfs_dotdot()
389 *p = page; in nilfs_dotdot()
398 struct page *page; in nilfs_inode_by_name() local
400 de = nilfs_find_entry(dir, qstr, &page); in nilfs_inode_by_name()
403 kunmap(page); in nilfs_inode_by_name()
404 page_cache_release(page); in nilfs_inode_by_name()
411 struct page *page, struct inode *inode) in nilfs_set_link() argument
413 unsigned from = (char *) de - (char *) page_address(page); in nilfs_set_link()
415 struct address_space *mapping = page->mapping; in nilfs_set_link()
418 lock_page(page); in nilfs_set_link()
419 err = nilfs_prepare_chunk(page, from, to); in nilfs_set_link()
423 nilfs_commit_chunk(page, mapping, from, to); in nilfs_set_link()
424 nilfs_put_page(page); in nilfs_set_link()
439 struct page *page = NULL; in nilfs_add_link() local
455 page = nilfs_get_page(dir, n); in nilfs_add_link()
456 err = PTR_ERR(page); in nilfs_add_link()
457 if (IS_ERR(page)) in nilfs_add_link()
459 lock_page(page); in nilfs_add_link()
460 kaddr = page_address(page); in nilfs_add_link()
490 unlock_page(page); in nilfs_add_link()
491 nilfs_put_page(page); in nilfs_add_link()
497 from = (char *)de - (char *)page_address(page); in nilfs_add_link()
499 err = nilfs_prepare_chunk(page, from, to); in nilfs_add_link()
514 nilfs_commit_chunk(page, page->mapping, from, to); in nilfs_add_link()
519 nilfs_put_page(page); in nilfs_add_link()
523 unlock_page(page); in nilfs_add_link()
531 int nilfs_delete_entry(struct nilfs_dir_entry *dir, struct page *page) in nilfs_delete_entry() argument
533 struct address_space *mapping = page->mapping; in nilfs_delete_entry()
535 char *kaddr = page_address(page); in nilfs_delete_entry()
554 from = (char *)pde - (char *)page_address(page); in nilfs_delete_entry()
555 lock_page(page); in nilfs_delete_entry()
556 err = nilfs_prepare_chunk(page, from, to); in nilfs_delete_entry()
561 nilfs_commit_chunk(page, mapping, from, to); in nilfs_delete_entry()
564 nilfs_put_page(page); in nilfs_delete_entry()
574 struct page *page = grab_cache_page(mapping, 0); in nilfs_make_empty() local
580 if (!page) in nilfs_make_empty()
583 err = nilfs_prepare_chunk(page, 0, chunk_size); in nilfs_make_empty()
585 unlock_page(page); in nilfs_make_empty()
588 kaddr = kmap_atomic(page); in nilfs_make_empty()
604 nilfs_commit_chunk(page, mapping, 0, chunk_size); in nilfs_make_empty()
606 page_cache_release(page); in nilfs_make_empty()
615 struct page *page = NULL; in nilfs_empty_dir() local
622 page = nilfs_get_page(inode, i); in nilfs_empty_dir()
623 if (IS_ERR(page)) in nilfs_empty_dir()
626 kaddr = page_address(page); in nilfs_empty_dir()
652 nilfs_put_page(page); in nilfs_empty_dir()
657 nilfs_put_page(page); in nilfs_empty_dir()