Lines Matching refs:ipage
36 static bool inode_has_blocks(struct inode *inode, struct page *ipage) in inode_has_blocks() argument
38 struct f2fs_inode *ri = F2FS_INODE(ipage); in inode_has_blocks()
51 bool f2fs_sanity_check_inline_data(struct inode *inode, struct page *ipage) in f2fs_sanity_check_inline_data() argument
56 if (inode_has_blocks(inode, ipage)) in f2fs_sanity_check_inline_data()
82 void f2fs_do_read_inline_data(struct folio *folio, struct page *ipage) in f2fs_do_read_inline_data() argument
94 memcpy_to_folio(folio, 0, inline_data_addr(inode, ipage), in f2fs_do_read_inline_data()
101 struct page *ipage, u64 from) in f2fs_truncate_inline_inode() argument
108 addr = inline_data_addr(inode, ipage); in f2fs_truncate_inline_inode()
110 f2fs_wait_on_page_writeback(ipage, NODE, true, true); in f2fs_truncate_inline_inode()
112 set_page_dirty(ipage); in f2fs_truncate_inline_inode()
120 struct page *ipage; in f2fs_read_inline_data() local
122 ipage = f2fs_get_inode_page(F2FS_I_SB(inode), inode->i_ino); in f2fs_read_inline_data()
123 if (IS_ERR(ipage)) { in f2fs_read_inline_data()
125 return PTR_ERR(ipage); in f2fs_read_inline_data()
129 f2fs_put_page(ipage, 1); in f2fs_read_inline_data()
136 f2fs_do_read_inline_data(folio, ipage); in f2fs_read_inline_data()
140 f2fs_put_page(ipage, 1); in f2fs_read_inline_data()
221 struct page *ipage, *page; in f2fs_convert_inline_inode() local
240 ipage = f2fs_get_inode_page(sbi, inode->i_ino); in f2fs_convert_inline_inode()
241 if (IS_ERR(ipage)) { in f2fs_convert_inline_inode()
242 err = PTR_ERR(ipage); in f2fs_convert_inline_inode()
246 set_new_dnode(&dn, inode, ipage, ipage, 0); in f2fs_convert_inline_inode()
266 struct page *ipage; in f2fs_write_inline_data() local
268 ipage = f2fs_get_inode_page(sbi, inode->i_ino); in f2fs_write_inline_data()
269 if (IS_ERR(ipage)) in f2fs_write_inline_data()
270 return PTR_ERR(ipage); in f2fs_write_inline_data()
273 f2fs_put_page(ipage, 1); in f2fs_write_inline_data()
279 f2fs_wait_on_page_writeback(ipage, NODE, true, true); in f2fs_write_inline_data()
280 memcpy_from_folio(inline_data_addr(inode, ipage), in f2fs_write_inline_data()
282 set_page_dirty(ipage); in f2fs_write_inline_data()
289 clear_page_private_inline(ipage); in f2fs_write_inline_data()
290 f2fs_put_page(ipage, 1); in f2fs_write_inline_data()
299 struct page *ipage; in f2fs_recover_inline_data() local
315 ipage = f2fs_get_inode_page(sbi, inode->i_ino); in f2fs_recover_inline_data()
316 if (IS_ERR(ipage)) in f2fs_recover_inline_data()
317 return PTR_ERR(ipage); in f2fs_recover_inline_data()
319 f2fs_wait_on_page_writeback(ipage, NODE, true, true); in f2fs_recover_inline_data()
322 dst_addr = inline_data_addr(inode, ipage); in f2fs_recover_inline_data()
328 set_page_dirty(ipage); in f2fs_recover_inline_data()
329 f2fs_put_page(ipage, 1); in f2fs_recover_inline_data()
334 ipage = f2fs_get_inode_page(sbi, inode->i_ino); in f2fs_recover_inline_data()
335 if (IS_ERR(ipage)) in f2fs_recover_inline_data()
336 return PTR_ERR(ipage); in f2fs_recover_inline_data()
337 f2fs_truncate_inline_inode(inode, ipage, 0); in f2fs_recover_inline_data()
340 f2fs_put_page(ipage, 1); in f2fs_recover_inline_data()
361 struct page *ipage; in f2fs_find_in_inline_dir() local
364 ipage = f2fs_get_inode_page(sbi, dir->i_ino); in f2fs_find_in_inline_dir()
365 if (IS_ERR(ipage)) { in f2fs_find_in_inline_dir()
366 *res_page = ipage; in f2fs_find_in_inline_dir()
370 inline_dentry = inline_data_addr(dir, ipage); in f2fs_find_in_inline_dir()
374 unlock_page(ipage); in f2fs_find_in_inline_dir()
380 *res_page = ipage; in f2fs_find_in_inline_dir()
382 f2fs_put_page(ipage, 0); in f2fs_find_in_inline_dir()
388 struct page *ipage) in f2fs_make_empty_inline_dir() argument
393 inline_dentry = inline_data_addr(inode, ipage); in f2fs_make_empty_inline_dir()
398 set_page_dirty(ipage); in f2fs_make_empty_inline_dir()
410 static int f2fs_move_inline_dirents(struct inode *dir, struct page *ipage, in f2fs_move_inline_dirents() argument
421 f2fs_put_page(ipage, 1); in f2fs_move_inline_dirents()
425 set_new_dnode(&dn, dir, ipage, NULL, 0); in f2fs_move_inline_dirents()
463 f2fs_truncate_inline_inode(dir, ipage, 0); in f2fs_move_inline_dirents()
536 static int f2fs_move_rehashed_dirents(struct inode *dir, struct page *ipage, in f2fs_move_rehashed_dirents() argument
545 f2fs_put_page(ipage, 1); in f2fs_move_rehashed_dirents()
550 f2fs_truncate_inline_inode(dir, ipage, 0); in f2fs_move_rehashed_dirents()
552 unlock_page(ipage); in f2fs_move_rehashed_dirents()
558 lock_page(ipage); in f2fs_move_rehashed_dirents()
574 lock_page(ipage); in f2fs_move_rehashed_dirents()
575 f2fs_wait_on_page_writeback(ipage, NODE, true, true); in f2fs_move_rehashed_dirents()
579 set_page_dirty(ipage); in f2fs_move_rehashed_dirents()
580 f2fs_put_page(ipage, 1); in f2fs_move_rehashed_dirents()
586 static int do_convert_inline_dir(struct inode *dir, struct page *ipage, in do_convert_inline_dir() argument
590 return f2fs_move_inline_dirents(dir, ipage, inline_dentry); in do_convert_inline_dir()
592 return f2fs_move_rehashed_dirents(dir, ipage, inline_dentry); in do_convert_inline_dir()
598 struct page *ipage; in f2fs_try_convert_inline_dir() local
612 ipage = f2fs_get_inode_page(sbi, dir->i_ino); in f2fs_try_convert_inline_dir()
613 if (IS_ERR(ipage)) { in f2fs_try_convert_inline_dir()
614 err = PTR_ERR(ipage); in f2fs_try_convert_inline_dir()
618 if (f2fs_has_enough_room(dir, ipage, &fname)) { in f2fs_try_convert_inline_dir()
619 f2fs_put_page(ipage, 1); in f2fs_try_convert_inline_dir()
623 inline_dentry = inline_data_addr(dir, ipage); in f2fs_try_convert_inline_dir()
625 err = do_convert_inline_dir(dir, ipage, inline_dentry); in f2fs_try_convert_inline_dir()
627 f2fs_put_page(ipage, 1); in f2fs_try_convert_inline_dir()
639 struct page *ipage; in f2fs_add_inline_entry() local
647 ipage = f2fs_get_inode_page(sbi, dir->i_ino); in f2fs_add_inline_entry()
648 if (IS_ERR(ipage)) in f2fs_add_inline_entry()
649 return PTR_ERR(ipage); in f2fs_add_inline_entry()
651 inline_dentry = inline_data_addr(dir, ipage); in f2fs_add_inline_entry()
656 err = do_convert_inline_dir(dir, ipage, inline_dentry); in f2fs_add_inline_entry()
666 page = f2fs_init_inode_metadata(inode, dir, fname, ipage); in f2fs_add_inline_entry()
673 f2fs_wait_on_page_writeback(ipage, NODE, true, true); in f2fs_add_inline_entry()
678 set_page_dirty(ipage); in f2fs_add_inline_entry()
696 f2fs_put_page(ipage, 1); in f2fs_add_inline_entry()
732 struct page *ipage; in f2fs_empty_inline_dir() local
737 ipage = f2fs_get_inode_page(sbi, dir->i_ino); in f2fs_empty_inline_dir()
738 if (IS_ERR(ipage)) in f2fs_empty_inline_dir()
741 inline_dentry = inline_data_addr(dir, ipage); in f2fs_empty_inline_dir()
746 f2fs_put_page(ipage, 1); in f2fs_empty_inline_dir()
758 struct page *ipage = NULL; in f2fs_read_inline_dir() local
768 ipage = f2fs_get_inode_page(F2FS_I_SB(inode), inode->i_ino); in f2fs_read_inline_dir()
769 if (IS_ERR(ipage)) in f2fs_read_inline_dir()
770 return PTR_ERR(ipage); in f2fs_read_inline_dir()
776 unlock_page(ipage); in f2fs_read_inline_dir()
778 inline_dentry = inline_data_addr(inode, ipage); in f2fs_read_inline_dir()
786 f2fs_put_page(ipage, 0); in f2fs_read_inline_dir()
797 struct page *ipage; in f2fs_inline_data_fiemap() local
800 ipage = f2fs_get_inode_page(F2FS_I_SB(inode), inode->i_ino); in f2fs_inline_data_fiemap()
801 if (IS_ERR(ipage)) in f2fs_inline_data_fiemap()
802 return PTR_ERR(ipage); in f2fs_inline_data_fiemap()
827 byteaddr += (char *)inline_data_addr(inode, ipage) - in f2fs_inline_data_fiemap()
828 (char *)F2FS_INODE(ipage); in f2fs_inline_data_fiemap()
832 f2fs_put_page(ipage, 1); in f2fs_inline_data_fiemap()