Lines Matching refs:page

31 static void dir_commit_chunk(struct page *page, loff_t pos, unsigned len)  in dir_commit_chunk()  argument
33 struct address_space *mapping = page->mapping; in dir_commit_chunk()
36 block_write_end(NULL, mapping, pos, len, len, page, NULL); in dir_commit_chunk()
41 unlock_page(page); in dir_commit_chunk()
61 static void *dir_get_page(struct inode *dir, unsigned long n, struct page **p) in dir_get_page()
64 struct page *page = read_mapping_page(mapping, n, NULL); in dir_get_page() local
65 if (IS_ERR(page)) in dir_get_page()
66 return ERR_CAST(page); in dir_get_page()
67 *p = page; in dir_get_page()
68 return kmap_local_page(page); in dir_get_page()
90 struct page *page; in sysv_readdir() local
92 kaddr = dir_get_page(inode, n, &page); in sysv_readdir()
106 unmap_and_put_page(page, kaddr); in sysv_readdir()
110 unmap_and_put_page(page, kaddr); in sysv_readdir()
139 struct sysv_dir_entry *sysv_find_entry(struct dentry *dentry, struct page **res_page) in sysv_find_entry()
146 struct page *page = NULL; in sysv_find_entry() local
157 char *kaddr = dir_get_page(dir, n, &page); in sysv_find_entry()
169 unmap_and_put_page(page, kaddr); in sysv_find_entry()
180 *res_page = page; in sysv_find_entry()
189 struct page *page = NULL; in sysv_add_link() local
199 kaddr = dir_get_page(dir, n, &page); in sysv_add_link()
212 unmap_and_put_page(page, kaddr); in sysv_add_link()
218 pos = page_offset(page) + offset_in_page(de); in sysv_add_link()
219 lock_page(page); in sysv_add_link()
220 err = sysv_prepare_chunk(page, pos, SYSV_DIRSIZE); in sysv_add_link()
226 dir_commit_chunk(page, pos, SYSV_DIRSIZE); in sysv_add_link()
231 unmap_and_put_page(page, kaddr); in sysv_add_link()
234 unlock_page(page); in sysv_add_link()
238 int sysv_delete_entry(struct sysv_dir_entry *de, struct page *page) in sysv_delete_entry() argument
240 struct inode *inode = page->mapping->host; in sysv_delete_entry()
241 loff_t pos = page_offset(page) + offset_in_page(de); in sysv_delete_entry()
244 lock_page(page); in sysv_delete_entry()
245 err = sysv_prepare_chunk(page, pos, SYSV_DIRSIZE); in sysv_delete_entry()
247 unlock_page(page); in sysv_delete_entry()
251 dir_commit_chunk(page, pos, SYSV_DIRSIZE); in sysv_delete_entry()
259 struct page *page = grab_cache_page(inode->i_mapping, 0); in sysv_make_empty() local
264 if (!page) in sysv_make_empty()
266 err = sysv_prepare_chunk(page, 0, 2 * SYSV_DIRSIZE); in sysv_make_empty()
268 unlock_page(page); in sysv_make_empty()
271 base = kmap_local_page(page); in sysv_make_empty()
282 dir_commit_chunk(page, 0, 2 * SYSV_DIRSIZE); in sysv_make_empty()
285 put_page(page); in sysv_make_empty()
295 struct page *page = NULL; in sysv_empty_dir() local
302 kaddr = dir_get_page(inode, i, &page); in sysv_empty_dir()
324 unmap_and_put_page(page, kaddr); in sysv_empty_dir()
329 unmap_and_put_page(page, kaddr); in sysv_empty_dir()
334 int sysv_set_link(struct sysv_dir_entry *de, struct page *page, in sysv_set_link() argument
337 struct inode *dir = page->mapping->host; in sysv_set_link()
338 loff_t pos = page_offset(page) + offset_in_page(de); in sysv_set_link()
341 lock_page(page); in sysv_set_link()
342 err = sysv_prepare_chunk(page, pos, SYSV_DIRSIZE); in sysv_set_link()
344 unlock_page(page); in sysv_set_link()
348 dir_commit_chunk(page, pos, SYSV_DIRSIZE); in sysv_set_link()
361 struct sysv_dir_entry *sysv_dotdot(struct inode *dir, struct page **p) in sysv_dotdot()
373 struct page *page; in sysv_inode_by_name() local
374 struct sysv_dir_entry *de = sysv_find_entry (dentry, &page); in sysv_inode_by_name()
379 unmap_and_put_page(page, de); in sysv_inode_by_name()