Lines Matching defs:inode

29 #include "inode-item.h"
65 * Data reloc tree will contain an inode, recording all newly relocated
132 /* inode for moving data */
133 struct inode *data_inode;
959 * helper to find first cached inode with inode number >= objectid
962 static struct inode *find_next_inode(struct btrfs_root *root, u64 objectid)
967 struct inode *inode;
996 inode = igrab(&entry->vfs_inode);
997 if (inode) {
999 return inode;
1015 static int get_new_location(struct inode *reloc_inode, u64 *new_bytenr,
1072 struct inode *inode = NULL;
1119 inode = find_next_inode(root, key.objectid);
1121 } else if (inode && btrfs_ino(BTRFS_I(inode)) < key.objectid) {
1122 btrfs_add_delayed_iput(BTRFS_I(inode));
1123 inode = find_next_inode(root, key.objectid);
1125 if (inode && btrfs_ino(BTRFS_I(inode)) == key.objectid) {
1134 ret = try_lock_extent(&BTRFS_I(inode)->io_tree,
1140 btrfs_drop_extent_map_range(BTRFS_I(inode),
1142 unlock_extent(&BTRFS_I(inode)->io_tree,
1185 if (inode)
1186 btrfs_add_delayed_iput(BTRFS_I(inode));
1525 struct inode *inode = NULL;
1535 iput(inode);
1540 inode = find_next_inode(root, objectid);
1541 if (!inode)
1543 ino = btrfs_ino(BTRFS_I(inode));
1546 iput(inode);
1551 if (!S_ISREG(inode->i_mode))
1584 lock_extent(&BTRFS_I(inode)->io_tree, start, end, &cached_state);
1585 btrfs_drop_extent_map_range(BTRFS_I(inode), start, end, true);
1586 unlock_extent(&BTRFS_I(inode)->io_tree, start, end, &cached_state);
2832 struct btrfs_inode *inode,
2838 u64 offset = inode->index_cnt;
2842 u64 i_size = i_size_read(&inode->vfs_inode);
2859 struct address_space *mapping = inode->vfs_inode.i_mapping;
2860 struct btrfs_fs_info *fs_info = inode->root->fs_info;
2879 * Here we just writeback the whole data reloc inode, so that
2890 clear_extent_bits(&inode->io_tree, i_size,
2907 ret = btrfs_alloc_data_chunk_ondemand(inode,
2912 btrfs_inode_lock(inode, 0);
2922 lock_extent(&inode->io_tree, start, end, &cached_state);
2924 ret = btrfs_prealloc_file_range(&inode->vfs_inode, 0, start,
2928 unlock_extent(&inode->io_tree, start, end, &cached_state);
2932 btrfs_inode_unlock(inode, 0);
2935 btrfs_free_reserved_data_space_noquota(inode->root->fs_info,
2940 static noinline_for_stack int setup_relocation_extent_mapping(struct inode *inode,
2957 lock_extent(&BTRFS_I(inode)->io_tree, start, end, &cached_state);
2958 ret = btrfs_replace_extent_map_range(BTRFS_I(inode), em, false);
2959 unlock_extent(&BTRFS_I(inode)->io_tree, start, end, &cached_state);
2987 static int relocate_one_page(struct inode *inode, struct file_ra_state *ra,
2991 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
2992 u64 offset = BTRFS_I(inode)->index_cnt;
2994 gfp_t mask = btrfs_alloc_write_mask(inode->i_mapping);
3002 page = find_lock_page(inode->i_mapping, page_index);
3004 page_cache_sync_readahead(inode->i_mapping, ra, NULL,
3006 page = find_or_create_page(inode->i_mapping, page_index, mask);
3012 page_cache_async_readahead(inode->i_mapping, ra, NULL,
3052 ret = btrfs_delalloc_reserve_metadata(BTRFS_I(inode),
3059 lock_extent(&BTRFS_I(inode)->io_tree, clamped_start, clamped_end,
3061 ret = btrfs_set_extent_delalloc(BTRFS_I(inode), clamped_start,
3064 clear_extent_bit(&BTRFS_I(inode)->io_tree,
3068 btrfs_delalloc_release_metadata(BTRFS_I(inode),
3070 btrfs_delalloc_release_extents(BTRFS_I(inode),
3090 set_extent_bit(&BTRFS_I(inode)->io_tree,
3094 unlock_extent(&BTRFS_I(inode)->io_tree, clamped_start, clamped_end,
3096 btrfs_delalloc_release_extents(BTRFS_I(inode), clamped_len);
3110 balance_dirty_pages_ratelimited(inode->i_mapping);
3122 static int relocate_file_extent_cluster(struct inode *inode,
3125 u64 offset = BTRFS_I(inode)->index_cnt;
3139 ret = prealloc_file_extent_cluster(BTRFS_I(inode), cluster);
3143 file_ra_state_init(ra, inode->i_mapping);
3145 ret = setup_relocation_extent_mapping(inode, cluster->start - offset,
3153 ret = relocate_one_page(inode, ra, cluster, &cluster_nr, index);
3162 int relocate_data_extent(struct inode *inode, struct btrfs_key *extent_key,
3168 ret = relocate_file_extent_cluster(inode, cluster);
3183 ret = relocate_file_extent_cluster(inode, cluster);
3367 struct inode *inode,
3374 if (inode)
3377 inode = btrfs_iget(fs_info->sb, ino, root);
3378 if (IS_ERR(inode))
3393 ret = btrfs_truncate_free_space_cache(trans, block_group, inode);
3398 iput(inode);
3404 * cache inode, to avoid free space cache data extent blocking data relocation.
3874 * helper to create inode for data relocation.
3875 * the inode is in data relocation tree and its link count is 0
3878 struct inode *create_reloc_inode(struct btrfs_fs_info *fs_info,
3881 struct inode *inode = NULL;
3902 inode = btrfs_iget(fs_info->sb, objectid, root);
3903 if (IS_ERR(inode)) {
3905 err = PTR_ERR(inode);
3906 inode = NULL;
3909 BTRFS_I(inode)->index_cnt = group->start;
3911 err = btrfs_orphan_add(trans, BTRFS_I(inode));
3917 iput(inode);
3918 inode = ERR_PTR(err);
3920 return inode;
4024 struct inode *inode;
4091 inode = lookup_free_space_inode(rc->block_group, path);
4094 if (!IS_ERR(inode))
4095 ret = delete_block_group_cache(fs_info, rc->block_group, inode, 0);
4097 ret = PTR_ERR(inode);
4369 /* cleanup orphan inode in data relocation tree */
4386 struct btrfs_inode *inode = BTRFS_I(ordered->inode);
4387 struct btrfs_fs_info *fs_info = inode->root->fs_info;
4388 u64 disk_bytenr = ordered->file_offset + inode->index_cnt;
4412 * We can do this because the data reloc inode refers strictly