Lines Matching defs:inode
504 /* update fsync_mark if its inode nat entry is still alive */
647 const long direct_index = ADDRS_PER_INODE(dn->inode);
648 const long direct_blks = ADDRS_PER_BLOCK(dn->inode);
649 const long indirect_blks = ADDRS_PER_BLOCK(dn->inode) * NIDS_PER_BLOCK;
650 unsigned int skipped_unit = ADDRS_PER_BLOCK(dn->inode);
672 f2fs_bug_on(F2FS_I_SB(dn->inode), 1);
680 * Offset[0] will have raw inode offset.
682 static int get_node_path(struct inode *inode, long block,
685 const long direct_index = ADDRS_PER_INODE(inode);
686 const long direct_blks = ADDRS_PER_BLOCK(inode);
688 const long indirect_blks = ADDRS_PER_BLOCK(inode) * NIDS_PER_BLOCK;
763 struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
772 level = get_node_path(dn->inode, index, offset, noffset);
776 nids[0] = dn->inode->i_ino;
786 if (f2fs_has_inline_data(dn->inode) && index) {
853 if (is_inode_flag_set(dn->inode, FI_COMPRESSED_FILE) &&
855 unsigned int cluster_size = F2FS_I(dn->inode)->i_cluster_size;
871 blkaddr = data_blkaddr(dn->inode, dn->node_page, ofs_in_node);
873 blkaddr = data_blkaddr(dn->inode, dn->node_page,
876 f2fs_update_read_extent_tree_range_compressed(dn->inode,
899 struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
910 dec_valid_node_count(sbi, dn->inode, dn->nid == dn->inode->i_ino);
913 if (dn->nid == dn->inode->i_ino) {
916 f2fs_inode_synced(dn->inode);
929 trace_f2fs_truncate_node(dn->inode, dn->nid, ni.blk_addr);
936 struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
950 if (IS_INODE(page) || ino_of_node(page) != dn->inode->i_ino) {
952 dn->inode->i_ino, dn->nid, ino_of_node(page));
962 f2fs_truncate_data_blocks_range(dn, ADDRS_PER_BLOCK(dn->inode));
986 trace_f2fs_truncate_nodes_enter(dn->inode, dn->nid, dn->data_blkaddr);
988 page = f2fs_get_node_page(F2FS_I_SB(dn->inode), dn->nid);
990 trace_f2fs_truncate_nodes_exit(dn->inode, PTR_ERR(page));
1040 trace_f2fs_truncate_nodes_exit(dn->inode, freed);
1045 trace_f2fs_truncate_nodes_exit(dn->inode, ret);
1066 pages[i] = f2fs_get_node_page(F2FS_I_SB(dn->inode), nid[i]);
1106 trace_f2fs_truncate_partial_nodes(dn->inode, nid, depth, err);
1114 int f2fs_truncate_inode_blocks(struct inode *inode, pgoff_t from)
1116 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
1124 trace_f2fs_truncate_inode_blocks_enter(inode, from);
1126 level = get_node_path(inode, from, offset, noffset);
1128 trace_f2fs_truncate_inode_blocks_exit(inode, level);
1132 page = f2fs_get_node_page(sbi, inode->i_ino);
1134 trace_f2fs_truncate_inode_blocks_exit(inode, PTR_ERR(page));
1138 set_new_dnode(&dn, inode, page, NULL, 0);
1207 trace_f2fs_truncate_inode_blocks_exit(inode, err);
1211 /* caller must lock inode page */
1212 int f2fs_truncate_xattr_node(struct inode *inode)
1214 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
1215 nid_t nid = F2FS_I(inode)->i_xattr_nid;
1227 set_new_dnode(&dn, inode, NULL, npage, nid);
1234 f2fs_i_xnid_write(inode, 0);
1243 int f2fs_remove_inode_page(struct inode *inode)
1248 set_new_dnode(&dn, inode, NULL, NULL, inode->i_ino);
1253 err = f2fs_truncate_xattr_node(inode);
1260 if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
1261 S_ISLNK(inode->i_mode))
1265 if (unlikely(f2fs_cp_error(F2FS_I_SB(inode)))) {
1270 if (unlikely(inode->i_blocks != 0 && inode->i_blocks != 8)) {
1271 f2fs_warn(F2FS_I_SB(inode),
1273 inode->i_ino, (unsigned long long)inode->i_blocks);
1274 set_sbi_flag(F2FS_I_SB(inode), SBI_NEED_FSCK);
1277 /* will put inode & node pages */
1286 struct page *f2fs_new_inode_page(struct inode *inode)
1290 /* allocate inode page for new inode */
1291 set_new_dnode(&dn, inode, NULL, NULL, inode->i_ino);
1299 struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
1304 if (unlikely(is_inode_flag_set(dn->inode, FI_NO_ALLOC)))
1311 if (unlikely((err = inc_valid_node_count(sbi, dn->inode, !ofs))))
1317 dec_valid_node_count(sbi, dn->inode, !ofs);
1328 new_ni.ino = dn->inode->i_ino;
1335 fill_node_footer(page, dn->nid, dn->inode->i_ino, ofs, true);
1336 set_cold_node(page, S_ISDIR(dn->inode->i_mode));
1343 f2fs_i_xnid_write(dn->inode, dn->nid);
1505 struct inode *inode;
1510 inode = ilookup(sbi->sb, ino);
1511 if (!inode)
1514 page = f2fs_pagecache_get_page(inode->i_mapping, 0,
1528 ret = f2fs_write_inline_data(inode, page);
1529 inode_dec_dirty_pages(inode);
1530 f2fs_remove_dirty_inode(inode);
1536 iput(inode);
1753 int f2fs_fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
1762 nid_t ino = inode->i_ino;
1820 if (is_inode_flag_set(inode,
1822 f2fs_update_inode(inode, page);
1873 static int f2fs_match_ino(struct inode *inode, unsigned long ino, void *data)
1875 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
1878 if (inode->i_ino != ino)
1881 if (!is_inode_flag_set(inode, FI_DIRTY_INODE))
1885 clean = list_empty(&F2FS_I(inode)->gdirty_list);
1891 inode = igrab(inode);
1892 if (!inode)
1900 struct inode *inode;
1903 inode = find_inode_nowait(sbi->sb, ino, f2fs_match_ino, NULL);
1904 if (!inode)
1907 f2fs_update_inode(inode, page);
1910 iput(inode);
2023 /* flush inline_data/inode, if it's async context. */
2035 /* flush dirty inode */
2564 * The returned nid could be used ino as well as nid when inode is created.
2687 int f2fs_recover_inline_xattr(struct inode *inode, struct page *page)
2694 ipage = f2fs_get_node_page(F2FS_I_SB(inode), inode->i_ino);
2700 if (!f2fs_has_inline_xattr(inode)) {
2701 set_inode_flag(inode, FI_INLINE_XATTR);
2702 stat_inc_inline_xattr(inode);
2705 if (f2fs_has_inline_xattr(inode)) {
2706 stat_dec_inline_xattr(inode);
2707 clear_inode_flag(inode, FI_INLINE_XATTR);
2712 dst_addr = inline_xattr_addr(inode, ipage);
2713 src_addr = inline_xattr_addr(inode, page);
2714 inline_size = inline_xattr_size(inode);
2719 f2fs_update_inode(inode, ipage);
2724 int f2fs_recover_xattr_data(struct inode *inode, struct page *page)
2726 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
2727 nid_t prev_xnid = F2FS_I(inode)->i_xattr_nid;
2743 dec_valid_node_count(sbi, inode, false);
2747 /* 2: update xattr nid in inode */
2751 set_new_dnode(&dn, inode, NULL, NULL, new_xnid);
2759 f2fs_update_inode_page(inode);
2793 /* Should not use this inode from free nid list */