Lines Matching refs:page

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