Lines Matching refs:inode
233 struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode); in reserve_new_block()
235 if (unlikely(is_inode_flag_set(F2FS_I(dn->inode), FI_NO_ALLOC))) in reserve_new_block()
237 if (unlikely(!inc_valid_block_count(sbi, dn->inode, 1))) in reserve_new_block()
240 trace_f2fs_reserve_new_block(dn->inode, dn->nid, dn->ofs_in_node); in reserve_new_block()
244 mark_inode_dirty(dn->inode); in reserve_new_block()
268 struct inode *inode = dn->inode; in f2fs_get_block() local
270 if (f2fs_lookup_extent_cache(inode, index, &ei)) { in f2fs_get_block()
278 struct page *get_read_data_page(struct inode *inode, pgoff_t index, in get_read_data_page() argument
281 struct address_space *mapping = inode->i_mapping; in get_read_data_page()
287 .sbi = F2FS_I_SB(inode), in get_read_data_page()
293 if (f2fs_encrypted_inode(inode) && S_ISREG(inode->i_mode)) in get_read_data_page()
300 if (f2fs_lookup_extent_cache(inode, index, &ei)) { in get_read_data_page()
305 set_new_dnode(&dn, inode, NULL, NULL, 0); in get_read_data_page()
346 struct page *find_data_page(struct inode *inode, pgoff_t index) in find_data_page() argument
348 struct address_space *mapping = inode->i_mapping; in find_data_page()
356 page = get_read_data_page(inode, index, READ_SYNC, false); in find_data_page()
376 struct page *get_lock_data_page(struct inode *inode, pgoff_t index, in get_lock_data_page() argument
379 struct address_space *mapping = inode->i_mapping; in get_lock_data_page()
382 page = get_read_data_page(inode, index, READ_SYNC, for_write); in get_lock_data_page()
408 struct page *get_new_data_page(struct inode *inode, in get_new_data_page() argument
411 struct address_space *mapping = inode->i_mapping; in get_new_data_page()
426 set_new_dnode(&dn, inode, ipage, NULL, 0); in get_new_data_page()
444 page = get_read_data_page(inode, index, READ_SYNC, true); in get_new_data_page()
452 if (new_i_size && i_size_read(inode) < in get_new_data_page()
454 i_size_write(inode, ((loff_t)(index + 1) << PAGE_CACHE_SHIFT)); in get_new_data_page()
456 set_inode_flag(F2FS_I(inode), FI_UPDATE_DIR); in get_new_data_page()
463 struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode); in __allocate_data_block()
464 struct f2fs_inode_info *fi = F2FS_I(dn->inode); in __allocate_data_block()
470 if (unlikely(is_inode_flag_set(F2FS_I(dn->inode), FI_NO_ALLOC))) in __allocate_data_block()
477 if (unlikely(!inc_valid_block_count(sbi, dn->inode, 1))) in __allocate_data_block()
494 if (i_size_read(dn->inode) < ((loff_t)(fofs + 1) << PAGE_CACHE_SHIFT)) in __allocate_data_block()
495 i_size_write(dn->inode, in __allocate_data_block()
499 f2fs_drop_largest_extent(dn->inode, fofs); in __allocate_data_block()
504 static void __allocate_data_blocks(struct inode *inode, loff_t offset, in __allocate_data_blocks() argument
507 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in __allocate_data_blocks()
519 set_new_dnode(&dn, inode, NULL, NULL, 0); in __allocate_data_blocks()
524 end_offset = ADDRS_PER_PAGE(dn.node_page, F2FS_I(inode)); in __allocate_data_blocks()
569 static int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map, in f2fs_map_blocks() argument
574 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_map_blocks()
587 if (f2fs_lookup_extent_cache(inode, pgofs, &ei)) { in f2fs_map_blocks()
595 f2fs_lock_op(F2FS_I_SB(inode)); in f2fs_map_blocks()
598 set_new_dnode(&dn, inode, NULL, NULL, 0); in f2fs_map_blocks()
638 end_offset = ADDRS_PER_PAGE(dn.node_page, F2FS_I(inode)); in f2fs_map_blocks()
649 set_new_dnode(&dn, inode, NULL, NULL, 0); in f2fs_map_blocks()
657 end_offset = ADDRS_PER_PAGE(dn.node_page, F2FS_I(inode)); in f2fs_map_blocks()
705 f2fs_unlock_op(F2FS_I_SB(inode)); in f2fs_map_blocks()
707 trace_f2fs_map_blocks(inode, map, err); in f2fs_map_blocks()
711 static int __get_data_block(struct inode *inode, sector_t iblock, in __get_data_block() argument
718 map.m_len = bh->b_size >> inode->i_blkbits; in __get_data_block()
720 ret = f2fs_map_blocks(inode, &map, create, flag); in __get_data_block()
722 map_bh(bh, inode->i_sb, map.m_pblk); in __get_data_block()
724 bh->b_size = map.m_len << inode->i_blkbits; in __get_data_block()
729 static int get_data_block(struct inode *inode, sector_t iblock, in get_data_block() argument
732 return __get_data_block(inode, iblock, bh_result, create, flag); in get_data_block()
735 static int get_data_block_dio(struct inode *inode, sector_t iblock, in get_data_block_dio() argument
738 return __get_data_block(inode, iblock, bh_result, create, in get_data_block_dio()
742 static int get_data_block_bmap(struct inode *inode, sector_t iblock, in get_data_block_bmap() argument
745 return __get_data_block(inode, iblock, bh_result, create, in get_data_block_bmap()
749 static inline sector_t logical_to_blk(struct inode *inode, loff_t offset) in logical_to_blk() argument
751 return (offset >> inode->i_blkbits); in logical_to_blk()
754 static inline loff_t blk_to_logical(struct inode *inode, sector_t blk) in blk_to_logical() argument
756 return (blk << inode->i_blkbits); in blk_to_logical()
759 int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, in f2fs_fiemap() argument
764 loff_t isize = i_size_read(inode); in f2fs_fiemap()
774 if (f2fs_has_inline_data(inode)) { in f2fs_fiemap()
775 ret = f2fs_inline_data_fiemap(inode, fieinfo, start, len); in f2fs_fiemap()
780 mutex_lock(&inode->i_mutex); in f2fs_fiemap()
787 if (logical_to_blk(inode, len) == 0) in f2fs_fiemap()
788 len = blk_to_logical(inode, 1); in f2fs_fiemap()
790 start_blk = logical_to_blk(inode, start); in f2fs_fiemap()
791 last_blk = logical_to_blk(inode, start + len - 1); in f2fs_fiemap()
796 ret = get_data_block(inode, start_blk, &map_bh, 0, in f2fs_fiemap()
805 if (!past_eof && blk_to_logical(inode, start_blk) >= isize) in f2fs_fiemap()
839 logical = blk_to_logical(inode, start_blk); in f2fs_fiemap()
840 phys = blk_to_logical(inode, map_bh.b_blocknr); in f2fs_fiemap()
846 start_blk += logical_to_blk(inode, size); in f2fs_fiemap()
865 mutex_unlock(&inode->i_mutex); in f2fs_fiemap()
880 struct inode *inode = mapping->host; in f2fs_mpage_readpages() local
881 const unsigned blkbits = inode->i_blkbits; in f2fs_mpage_readpages()
887 struct block_device *bdev = inode->i_sb->s_bdev; in f2fs_mpage_readpages()
908 last_block_in_file = (i_size_read(inode) + blocksize - 1) >> in f2fs_mpage_readpages()
931 if (f2fs_map_blocks(inode, &map, 0, in f2fs_mpage_readpages()
963 if (f2fs_encrypted_inode(inode) && in f2fs_mpage_readpages()
964 S_ISREG(inode->i_mode)) { in f2fs_mpage_readpages()
966 ctx = f2fs_get_crypto_ctx(inode); in f2fs_mpage_readpages()
972 F2FS_I_SB(inode), block_nr); in f2fs_mpage_readpages()
1016 struct inode *inode = page->mapping->host; in f2fs_read_data_page() local
1022 if (f2fs_has_inline_data(inode)) in f2fs_read_data_page()
1023 ret = f2fs_read_inline_data(inode, page); in f2fs_read_data_page()
1033 struct inode *inode = file->f_mapping->host; in f2fs_read_data_pages() local
1036 trace_f2fs_readpages(inode, page, nr_pages); in f2fs_read_data_pages()
1039 if (f2fs_has_inline_data(inode)) in f2fs_read_data_pages()
1048 struct inode *inode = page->mapping->host; in do_write_data_page() local
1052 set_new_dnode(&dn, inode, NULL, NULL, 0); in do_write_data_page()
1065 if (f2fs_encrypted_inode(inode) && S_ISREG(inode->i_mode)) { in do_write_data_page()
1068 f2fs_wait_on_encrypted_page_writeback(F2FS_I_SB(inode), in do_write_data_page()
1071 fio->encrypted_page = f2fs_encrypt(inode, fio->page); in do_write_data_page()
1086 need_inplace_update(inode))) { in do_write_data_page()
1088 set_inode_flag(F2FS_I(inode), FI_UPDATE_WRITE); in do_write_data_page()
1095 set_inode_flag(F2FS_I(inode), FI_APPEND_WRITE); in do_write_data_page()
1097 set_inode_flag(F2FS_I(inode), FI_FIRST_BLOCK_WRITTEN); in do_write_data_page()
1107 struct inode *inode = page->mapping->host; in f2fs_write_data_page() local
1108 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_write_data_page()
1109 loff_t i_size = i_size_read(inode); in f2fs_write_data_page()
1140 if (f2fs_is_drop_cache(inode)) in f2fs_write_data_page()
1142 if (f2fs_is_volatile_file(inode) && !wbc->for_reclaim && in f2fs_write_data_page()
1147 if (S_ISDIR(inode->i_mode)) { in f2fs_write_data_page()
1167 if (f2fs_has_inline_data(inode)) in f2fs_write_data_page()
1168 err = f2fs_write_inline_data(inode, page); in f2fs_write_data_page()
1178 inode_dec_dirty_pages(inode); in f2fs_write_data_page()
1336 struct inode *inode = mapping->host; in f2fs_write_data_pages() local
1337 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_write_data_pages()
1349 if (!get_dirty_pages(inode) && wbc->sync_mode == WB_SYNC_NONE) in f2fs_write_data_pages()
1352 if (S_ISDIR(inode->i_mode) && wbc->sync_mode == WB_SYNC_NONE && in f2fs_write_data_pages()
1353 get_dirty_pages(inode) < nr_pages_to_skip(sbi, DATA) && in f2fs_write_data_pages()
1363 if (!S_ISDIR(inode->i_mode)) { in f2fs_write_data_pages()
1372 remove_dirty_dir_inode(inode); in f2fs_write_data_pages()
1378 wbc->pages_skipped += get_dirty_pages(inode); in f2fs_write_data_pages()
1384 struct inode *inode = mapping->host; in f2fs_write_failed() local
1386 if (to > inode->i_size) { in f2fs_write_failed()
1387 truncate_pagecache(inode, inode->i_size); in f2fs_write_failed()
1388 truncate_blocks(inode, inode->i_size, true); in f2fs_write_failed()
1396 struct inode *inode = mapping->host; in f2fs_write_begin() local
1397 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_write_begin()
1404 trace_f2fs_write_begin(inode, pos, len, flags); in f2fs_write_begin()
1414 err = f2fs_convert_inline_inode(inode); in f2fs_write_begin()
1430 ipage = get_node_page(sbi, inode->i_ino); in f2fs_write_begin()
1436 set_new_dnode(&dn, inode, ipage, ipage, 0); in f2fs_write_begin()
1438 if (f2fs_has_inline_data(inode)) { in f2fs_write_begin()
1441 set_inode_flag(F2FS_I(inode), FI_DATA_EXIST); in f2fs_write_begin()
1460 if (f2fs_encrypted_inode(inode) && S_ISREG(inode->i_mode)) in f2fs_write_begin()
1468 if ((pos & PAGE_CACHE_MASK) >= i_size_read(inode)) { in f2fs_write_begin()
1503 if (f2fs_encrypted_inode(inode) && S_ISREG(inode->i_mode)) { in f2fs_write_begin()
1504 err = f2fs_decrypt_one(inode, page); in f2fs_write_begin()
1530 struct inode *inode = page->mapping->host; in f2fs_write_end() local
1532 trace_f2fs_write_end(inode, pos, len, copied); in f2fs_write_end()
1536 if (pos + copied > i_size_read(inode)) { in f2fs_write_end()
1537 i_size_write(inode, pos + copied); in f2fs_write_end()
1538 mark_inode_dirty(inode); in f2fs_write_end()
1539 update_inode_page(inode); in f2fs_write_end()
1546 static int check_direct_IO(struct inode *inode, struct iov_iter *iter, in check_direct_IO() argument
1549 unsigned blocksize_mask = inode->i_sb->s_blocksize - 1; in check_direct_IO()
1565 struct inode *inode = mapping->host; in f2fs_direct_IO() local
1570 if (f2fs_has_inline_data(inode)) { in f2fs_direct_IO()
1571 err = f2fs_convert_inline_inode(inode); in f2fs_direct_IO()
1576 if (f2fs_encrypted_inode(inode) && S_ISREG(inode->i_mode)) in f2fs_direct_IO()
1579 err = check_direct_IO(inode, iter, offset); in f2fs_direct_IO()
1583 trace_f2fs_direct_IO_enter(inode, offset, count, iov_iter_rw(iter)); in f2fs_direct_IO()
1586 __allocate_data_blocks(inode, offset, count); in f2fs_direct_IO()
1587 if (unlikely(f2fs_cp_error(F2FS_I_SB(inode)))) { in f2fs_direct_IO()
1593 err = blockdev_direct_IO(iocb, inode, iter, offset, get_data_block_dio); in f2fs_direct_IO()
1598 trace_f2fs_direct_IO_exit(inode, offset, count, iov_iter_rw(iter), err); in f2fs_direct_IO()
1606 struct inode *inode = page->mapping->host; in f2fs_invalidate_page() local
1607 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_invalidate_page()
1609 if (inode->i_ino >= F2FS_ROOT_INO(sbi) && in f2fs_invalidate_page()
1614 if (inode->i_ino == F2FS_META_INO(sbi)) in f2fs_invalidate_page()
1616 else if (inode->i_ino == F2FS_NODE_INO(sbi)) in f2fs_invalidate_page()
1619 inode_dec_dirty_pages(inode); in f2fs_invalidate_page()
1646 struct inode *inode = mapping->host; in f2fs_set_data_page_dirty() local
1652 if (f2fs_is_atomic_file(inode)) { in f2fs_set_data_page_dirty()
1654 register_inmem_page(inode, page); in f2fs_set_data_page_dirty()
1666 update_dirty_page(inode, page); in f2fs_set_data_page_dirty()
1674 struct inode *inode = mapping->host; in f2fs_bmap() local
1676 if (f2fs_has_inline_data(inode)) in f2fs_bmap()