Lines Matching refs:page

28 static inline void dir_put_page(struct page *page)  in dir_put_page()  argument
30 kunmap(page); in dir_put_page()
31 page_cache_release(page); in dir_put_page()
48 static int dir_commit_chunk(struct page *page, loff_t pos, unsigned len) in dir_commit_chunk() argument
50 struct address_space *mapping = page->mapping; in dir_commit_chunk()
53 block_write_end(NULL, mapping, pos, len, len, page, NULL); in dir_commit_chunk()
60 err = write_one_page(page, 1); in dir_commit_chunk()
62 unlock_page(page); in dir_commit_chunk()
66 static struct page * dir_get_page(struct inode *dir, unsigned long n) in dir_get_page()
69 struct page *page = read_mapping_page(mapping, n, NULL); in dir_get_page() local
70 if (!IS_ERR(page)) in dir_get_page()
71 kmap(page); in dir_get_page()
72 return page; in dir_get_page()
100 struct page *page = dir_get_page(inode, n); in minix_readdir() local
102 if (IS_ERR(page)) in minix_readdir()
104 kaddr = (char *)page_address(page); in minix_readdir()
123 dir_put_page(page); in minix_readdir()
129 dir_put_page(page); in minix_readdir()
150 minix_dirent *minix_find_entry(struct dentry *dentry, struct page **res_page) in minix_find_entry()
159 struct page *page = NULL; in minix_find_entry() local
169 page = dir_get_page(dir, n); in minix_find_entry()
170 if (IS_ERR(page)) in minix_find_entry()
173 kaddr = (char*)page_address(page); in minix_find_entry()
190 dir_put_page(page); in minix_find_entry()
195 *res_page = page; in minix_find_entry()
206 struct page *page = NULL; in minix_add_link() local
225 page = dir_get_page(dir, n); in minix_add_link()
226 err = PTR_ERR(page); in minix_add_link()
227 if (IS_ERR(page)) in minix_add_link()
229 lock_page(page); in minix_add_link()
230 kaddr = (char*)page_address(page); in minix_add_link()
257 unlock_page(page); in minix_add_link()
258 dir_put_page(page); in minix_add_link()
264 pos = page_offset(page) + p - (char *)page_address(page); in minix_add_link()
265 err = minix_prepare_chunk(page, pos, sbi->s_dirsize); in minix_add_link()
276 err = dir_commit_chunk(page, pos, sbi->s_dirsize); in minix_add_link()
280 dir_put_page(page); in minix_add_link()
284 unlock_page(page); in minix_add_link()
288 int minix_delete_entry(struct minix_dir_entry *de, struct page *page) in minix_delete_entry() argument
290 struct inode *inode = page->mapping->host; in minix_delete_entry()
291 char *kaddr = page_address(page); in minix_delete_entry()
292 loff_t pos = page_offset(page) + (char*)de - kaddr; in minix_delete_entry()
297 lock_page(page); in minix_delete_entry()
298 err = minix_prepare_chunk(page, pos, len); in minix_delete_entry()
304 err = dir_commit_chunk(page, pos, len); in minix_delete_entry()
306 unlock_page(page); in minix_delete_entry()
308 dir_put_page(page); in minix_delete_entry()
316 struct page *page = grab_cache_page(inode->i_mapping, 0); in minix_make_empty() local
321 if (!page) in minix_make_empty()
323 err = minix_prepare_chunk(page, 0, 2 * sbi->s_dirsize); in minix_make_empty()
325 unlock_page(page); in minix_make_empty()
329 kaddr = kmap_atomic(page); in minix_make_empty()
351 err = dir_commit_chunk(page, 0, 2 * sbi->s_dirsize); in minix_make_empty()
353 page_cache_release(page); in minix_make_empty()
362 struct page *page = NULL; in minix_empty_dir() local
371 page = dir_get_page(inode, i); in minix_empty_dir()
372 if (IS_ERR(page)) in minix_empty_dir()
375 kaddr = (char *)page_address(page); in minix_empty_dir()
401 dir_put_page(page); in minix_empty_dir()
406 dir_put_page(page); in minix_empty_dir()
411 void minix_set_link(struct minix_dir_entry *de, struct page *page, in minix_set_link() argument
414 struct inode *dir = page->mapping->host; in minix_set_link()
416 loff_t pos = page_offset(page) + in minix_set_link()
417 (char *)de-(char*)page_address(page); in minix_set_link()
420 lock_page(page); in minix_set_link()
422 err = minix_prepare_chunk(page, pos, sbi->s_dirsize); in minix_set_link()
428 err = dir_commit_chunk(page, pos, sbi->s_dirsize); in minix_set_link()
430 unlock_page(page); in minix_set_link()
432 dir_put_page(page); in minix_set_link()
437 struct minix_dir_entry * minix_dotdot (struct inode *dir, struct page **p) in minix_dotdot()
439 struct page *page = dir_get_page(dir, 0); in minix_dotdot() local
443 if (!IS_ERR(page)) { in minix_dotdot()
444 de = minix_next_entry(page_address(page), sbi); in minix_dotdot()
445 *p = page; in minix_dotdot()
452 struct page *page; in minix_inode_by_name() local
453 struct minix_dir_entry *de = minix_find_entry(dentry, &page); in minix_inode_by_name()
457 struct address_space *mapping = page->mapping; in minix_inode_by_name()
465 dir_put_page(page); in minix_inode_by_name()