Lines Matching refs:folio
43 static void dir_commit_chunk(struct folio *folio, loff_t pos, unsigned len) in dir_commit_chunk() argument
45 struct address_space *mapping = folio->mapping; in dir_commit_chunk()
48 block_write_end(pos, len, len, folio); in dir_commit_chunk()
54 folio_unlock(folio); in dir_commit_chunk()
68 struct folio **foliop) in dir_get_folio()
70 struct folio *folio = read_mapping_folio(dir->i_mapping, n, NULL); in dir_get_folio() local
72 if (IS_ERR(folio)) in dir_get_folio()
73 return ERR_CAST(folio); in dir_get_folio()
74 *foliop = folio; in dir_get_folio()
75 return kmap_local_folio(folio, 0); in dir_get_folio()
103 struct folio *folio; in minix_readdir() local
105 kaddr = dir_get_folio(inode, n, &folio); in minix_readdir()
126 folio_release_kmap(folio, p); in minix_readdir()
132 folio_release_kmap(folio, kaddr); in minix_readdir()
154 minix_dirent *minix_find_entry(struct dentry *dentry, struct folio **foliop) in minix_find_entry()
206 struct folio *folio = NULL; in minix_add_link() local
225 kaddr = dir_get_folio(dir, n, &folio); in minix_add_link()
228 folio_lock(folio); in minix_add_link()
255 folio_unlock(folio); in minix_add_link()
256 folio_release_kmap(folio, kaddr); in minix_add_link()
262 pos = folio_pos(folio) + offset_in_folio(folio, p); in minix_add_link()
263 err = minix_prepare_chunk(folio, pos, sbi->s_dirsize); in minix_add_link()
274 dir_commit_chunk(folio, pos, sbi->s_dirsize); in minix_add_link()
279 folio_release_kmap(folio, kaddr); in minix_add_link()
282 folio_unlock(folio); in minix_add_link()
286 int minix_delete_entry(struct minix_dir_entry *de, struct folio *folio) in minix_delete_entry() argument
288 struct inode *inode = folio->mapping->host; in minix_delete_entry()
289 loff_t pos = folio_pos(folio) + offset_in_folio(folio, de); in minix_delete_entry()
294 folio_lock(folio); in minix_delete_entry()
295 err = minix_prepare_chunk(folio, pos, len); in minix_delete_entry()
297 folio_unlock(folio); in minix_delete_entry()
304 dir_commit_chunk(folio, pos, len); in minix_delete_entry()
312 struct folio *folio = filemap_grab_folio(inode->i_mapping, 0); in minix_make_empty() local
317 if (IS_ERR(folio)) in minix_make_empty()
318 return PTR_ERR(folio); in minix_make_empty()
319 err = minix_prepare_chunk(folio, 0, 2 * sbi->s_dirsize); in minix_make_empty()
321 folio_unlock(folio); in minix_make_empty()
325 kaddr = kmap_local_folio(folio, 0); in minix_make_empty()
326 memset(kaddr, 0, folio_size(folio)); in minix_make_empty()
347 dir_commit_chunk(folio, 0, 2 * sbi->s_dirsize); in minix_make_empty()
350 folio_put(folio); in minix_make_empty()
359 struct folio *folio = NULL; in minix_empty_dir() local
368 kaddr = dir_get_folio(inode, i, &folio); in minix_empty_dir()
397 folio_release_kmap(folio, kaddr); in minix_empty_dir()
402 folio_release_kmap(folio, kaddr); in minix_empty_dir()
407 int minix_set_link(struct minix_dir_entry *de, struct folio *folio, in minix_set_link() argument
410 struct inode *dir = folio->mapping->host; in minix_set_link()
412 loff_t pos = folio_pos(folio) + offset_in_folio(folio, de); in minix_set_link()
415 folio_lock(folio); in minix_set_link()
416 err = minix_prepare_chunk(folio, pos, sbi->s_dirsize); in minix_set_link()
418 folio_unlock(folio); in minix_set_link()
425 dir_commit_chunk(folio, pos, sbi->s_dirsize); in minix_set_link()
431 struct minix_dir_entry *minix_dotdot(struct inode *dir, struct folio **foliop) in minix_dotdot()
443 struct folio *folio; in minix_inode_by_name() local
444 struct minix_dir_entry *de = minix_find_entry(dentry, &folio); in minix_inode_by_name()
448 struct inode *inode = folio->mapping->host; in minix_inode_by_name()
455 folio_release_kmap(folio, de); in minix_inode_by_name()