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()
53 static int dir_commit_chunk(struct page *page, loff_t pos, unsigned len) in dir_commit_chunk() argument
55 struct address_space *mapping = page->mapping; in dir_commit_chunk()
58 block_write_end(NULL, mapping, pos, len, len, page, NULL); in dir_commit_chunk()
65 err = write_one_page(page, 1); in dir_commit_chunk()
67 unlock_page(page); in dir_commit_chunk()
71 static struct page * dir_get_page(struct inode *dir, unsigned long n) in dir_get_page()
74 struct page *page = read_mapping_page(mapping, n, NULL); in dir_get_page() local
75 if (!IS_ERR(page)) in dir_get_page()
76 kmap(page); in dir_get_page()
77 return page; in dir_get_page()
105 struct page *page = dir_get_page(inode, n); in minix_readdir() local
107 if (IS_ERR(page)) in minix_readdir()
109 kaddr = (char *)page_address(page); in minix_readdir()
128 dir_put_page(page); in minix_readdir()
134 dir_put_page(page); in minix_readdir()
155 minix_dirent *minix_find_entry(struct dentry *dentry, struct page **res_page) in minix_find_entry()
164 struct page *page = NULL; in minix_find_entry() local
174 page = dir_get_page(dir, n); in minix_find_entry()
175 if (IS_ERR(page)) in minix_find_entry()
178 kaddr = (char*)page_address(page); in minix_find_entry()
195 dir_put_page(page); in minix_find_entry()
200 *res_page = page; in minix_find_entry()
211 struct page *page = NULL; in minix_add_link() local
230 page = dir_get_page(dir, n); in minix_add_link()
231 err = PTR_ERR(page); in minix_add_link()
232 if (IS_ERR(page)) in minix_add_link()
234 lock_page(page); in minix_add_link()
235 kaddr = (char*)page_address(page); in minix_add_link()
262 unlock_page(page); in minix_add_link()
263 dir_put_page(page); in minix_add_link()
269 pos = page_offset(page) + p - (char *)page_address(page); in minix_add_link()
270 err = minix_prepare_chunk(page, pos, sbi->s_dirsize); in minix_add_link()
281 err = dir_commit_chunk(page, pos, sbi->s_dirsize); in minix_add_link()
285 dir_put_page(page); in minix_add_link()
289 unlock_page(page); in minix_add_link()
293 int minix_delete_entry(struct minix_dir_entry *de, struct page *page) in minix_delete_entry() argument
295 struct inode *inode = page->mapping->host; in minix_delete_entry()
296 char *kaddr = page_address(page); in minix_delete_entry()
297 loff_t pos = page_offset(page) + (char*)de - kaddr; in minix_delete_entry()
302 lock_page(page); in minix_delete_entry()
303 err = minix_prepare_chunk(page, pos, len); in minix_delete_entry()
309 err = dir_commit_chunk(page, pos, len); in minix_delete_entry()
311 unlock_page(page); in minix_delete_entry()
313 dir_put_page(page); in minix_delete_entry()
321 struct page *page = grab_cache_page(inode->i_mapping, 0); in minix_make_empty() local
326 if (!page) in minix_make_empty()
328 err = minix_prepare_chunk(page, 0, 2 * sbi->s_dirsize); in minix_make_empty()
330 unlock_page(page); in minix_make_empty()
334 kaddr = kmap_atomic(page); in minix_make_empty()
356 err = dir_commit_chunk(page, 0, 2 * sbi->s_dirsize); in minix_make_empty()
358 page_cache_release(page); in minix_make_empty()
367 struct page *page = NULL; in minix_empty_dir() local
376 page = dir_get_page(inode, i); in minix_empty_dir()
377 if (IS_ERR(page)) in minix_empty_dir()
380 kaddr = (char *)page_address(page); in minix_empty_dir()
406 dir_put_page(page); in minix_empty_dir()
411 dir_put_page(page); in minix_empty_dir()
416 void minix_set_link(struct minix_dir_entry *de, struct page *page, in minix_set_link() argument
419 struct inode *dir = page->mapping->host; in minix_set_link()
421 loff_t pos = page_offset(page) + in minix_set_link()
422 (char *)de-(char*)page_address(page); in minix_set_link()
425 lock_page(page); in minix_set_link()
427 err = minix_prepare_chunk(page, pos, sbi->s_dirsize); in minix_set_link()
433 err = dir_commit_chunk(page, pos, sbi->s_dirsize); in minix_set_link()
435 unlock_page(page); in minix_set_link()
437 dir_put_page(page); in minix_set_link()
442 struct minix_dir_entry * minix_dotdot (struct inode *dir, struct page **p) in minix_dotdot()
444 struct page *page = dir_get_page(dir, 0); in minix_dotdot() local
448 if (!IS_ERR(page)) { in minix_dotdot()
449 de = minix_next_entry(page_address(page), sbi); in minix_dotdot()
450 *p = page; in minix_dotdot()
457 struct page *page; in minix_inode_by_name() local
458 struct minix_dir_entry *de = minix_find_entry(dentry, &page); in minix_inode_by_name()
462 struct address_space *mapping = page->mapping; in minix_inode_by_name()
470 dir_put_page(page); in minix_inode_by_name()