Lines Matching refs:root
46 static struct inode *__lookup_free_space_inode(struct btrfs_root *root, in __lookup_free_space_inode() argument
62 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in __lookup_free_space_inode()
77 inode = btrfs_iget(root->fs_info->sb, &location, root, NULL); in __lookup_free_space_inode()
94 struct inode *lookup_free_space_inode(struct btrfs_root *root, in lookup_free_space_inode() argument
108 inode = __lookup_free_space_inode(root, path, in lookup_free_space_inode()
115 btrfs_info(root->fs_info, in lookup_free_space_inode()
131 static int __create_free_space_inode(struct btrfs_root *root, in __create_free_space_inode() argument
144 ret = btrfs_insert_empty_inode(trans, root, path, ino); in __create_free_space_inode()
174 ret = btrfs_insert_empty_item(trans, root, path, &key, in __create_free_space_inode()
192 int create_free_space_inode(struct btrfs_root *root, in create_free_space_inode() argument
200 ret = btrfs_find_free_objectid(root, &ino); in create_free_space_inode()
204 return __create_free_space_inode(root, trans, path, ino, in create_free_space_inode()
208 int btrfs_check_trunc_cache_free_space(struct btrfs_root *root, in btrfs_check_trunc_cache_free_space() argument
215 needed_bytes = btrfs_calc_trunc_metadata_size(root, 1) + in btrfs_check_trunc_cache_free_space()
216 btrfs_calc_trans_metadata_size(root, 1); in btrfs_check_trunc_cache_free_space()
227 int btrfs_truncate_free_space_cache(struct btrfs_root *root, in btrfs_truncate_free_space_cache() argument
247 btrfs_wait_cache_io(root, trans, block_group, in btrfs_truncate_free_space_cache()
272 ret = btrfs_truncate_inode_items(trans, root, inode, in btrfs_truncate_free_space_cache()
277 ret = btrfs_update_inode(trans, root, inode); in btrfs_truncate_free_space_cache()
283 btrfs_abort_transaction(trans, root, ret); in btrfs_truncate_free_space_cache()
308 struct btrfs_root *root, int write) in io_ctl_init() argument
330 io_ctl->root = root; in io_ctl_init()
395 btrfs_err(BTRFS_I(inode)->root->fs_info, in io_ctl_prepare_pages()
453 btrfs_err_rl(io_ctl->root->fs_info, in io_ctl_check_generation()
509 btrfs_err_rl(io_ctl->root->fs_info, in io_ctl_check_crc()
668 static int __load_free_space_cache(struct btrfs_root *root, struct inode *inode, in __load_free_space_cache() argument
692 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in __load_free_space_cache()
711 btrfs_info(root->fs_info, in __load_free_space_cache()
718 btrfs_err(root->fs_info, in __load_free_space_cache()
728 ret = io_ctl_init(&io_ctl, inode, root, 0); in __load_free_space_cache()
770 btrfs_err(root->fs_info, in __load_free_space_cache()
790 btrfs_err(root->fs_info, in __load_free_space_cache()
830 struct btrfs_root *root = fs_info->tree_root; in load_free_space_cache() local
854 inode = lookup_free_space_inode(root, block_group, path); in load_free_space_cache()
925 node = rb_first(&cluster->root); in write_cache_extent_entries()
947 node = rb_first(&cluster->root); in write_cache_extent_entries()
981 struct btrfs_root *root, in update_cache_item() argument
995 ret = btrfs_search_slot(trans, root, &key, path, 0, 1); in update_cache_item()
1035 write_pinned_extent_entries(struct btrfs_root *root, in write_pinned_extent_entries() argument
1054 unpin = root->fs_info->pinned_extents; in write_pinned_extent_entries()
1143 int btrfs_wait_cache_io(struct btrfs_root *root, in btrfs_wait_cache_io() argument
1156 root = root->fs_info->tree_root; in btrfs_wait_cache_io()
1164 ret = update_cache_item(trans, root, inode, path, offset, in btrfs_wait_cache_io()
1173 btrfs_err(root->fs_info, in btrfs_wait_cache_io()
1179 btrfs_update_inode(trans, root, inode); in btrfs_wait_cache_io()
1221 static int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode, in __btrfs_write_out_cache() argument
1239 ret = io_ctl_init(io_ctl, inode, root, 1); in __btrfs_write_out_cache()
1285 ret = write_pinned_extent_entries(root, block_group, io_ctl, &entries); in __btrfs_write_out_cache()
1304 ret = btrfs_dirty_pages(root, inode, io_ctl->pages, io_ctl->num_pages, in __btrfs_write_out_cache()
1341 btrfs_update_inode(trans, root, inode); in __btrfs_write_out_cache()
1360 int btrfs_write_out_cache(struct btrfs_root *root, in btrfs_write_out_cache() argument
1369 root = root->fs_info->tree_root; in btrfs_write_out_cache()
1378 inode = lookup_free_space_inode(root, block_group, path); in btrfs_write_out_cache()
1382 ret = __btrfs_write_out_cache(root, inode, ctl, block_group, in btrfs_write_out_cache()
1387 btrfs_err(root->fs_info, in btrfs_write_out_cache()
1435 static int tree_insert_offset(struct rb_root *root, u64 offset, in tree_insert_offset() argument
1438 struct rb_node **p = &root->rb_node; in tree_insert_offset()
1481 rb_insert_color(node, root); in tree_insert_offset()
2056 node = rb_first(&cluster->root); in insert_into_bitmap()
2519 node = rb_first(&cluster->root); in __btrfs_return_cluster_to_free_space()
2525 rb_erase(&entry->offset_index, &cluster->root); in __btrfs_return_cluster_to_free_space()
2536 cluster->root = RB_ROOT; in __btrfs_return_cluster_to_free_space()
2728 node = rb_first(&cluster->root); in btrfs_alloc_from_cluster()
2769 rb_erase(&entry->offset_index, &cluster->root); in btrfs_alloc_from_cluster()
2863 ret = tree_insert_offset(&cluster->root, entry->offset, in btrfs_bitmap_cluster()
2953 ret = tree_insert_offset(&cluster->root, entry->offset, in setup_cluster_no_bitmap()
3019 int btrfs_find_space_cluster(struct btrfs_root *root, in btrfs_find_space_cluster() argument
3037 if (btrfs_test_opt(root, SSD_SPREAD)) { in btrfs_find_space_cluster()
3103 cluster->root = RB_ROOT; in btrfs_init_free_cluster()
3441 struct inode *lookup_free_ino_inode(struct btrfs_root *root, in lookup_free_ino_inode() argument
3446 spin_lock(&root->ino_cache_lock); in lookup_free_ino_inode()
3447 if (root->ino_cache_inode) in lookup_free_ino_inode()
3448 inode = igrab(root->ino_cache_inode); in lookup_free_ino_inode()
3449 spin_unlock(&root->ino_cache_lock); in lookup_free_ino_inode()
3453 inode = __lookup_free_space_inode(root, path, 0); in lookup_free_ino_inode()
3457 spin_lock(&root->ino_cache_lock); in lookup_free_ino_inode()
3458 if (!btrfs_fs_closing(root->fs_info)) in lookup_free_ino_inode()
3459 root->ino_cache_inode = igrab(inode); in lookup_free_ino_inode()
3460 spin_unlock(&root->ino_cache_lock); in lookup_free_ino_inode()
3465 int create_free_ino_inode(struct btrfs_root *root, in create_free_ino_inode() argument
3469 return __create_free_space_inode(root, trans, path, in create_free_ino_inode()
3473 int load_free_ino_cache(struct btrfs_fs_info *fs_info, struct btrfs_root *root) in load_free_ino_cache() argument
3475 struct btrfs_free_space_ctl *ctl = root->free_ino_ctl; in load_free_ino_cache()
3479 u64 root_gen = btrfs_root_generation(&root->root_item); in load_free_ino_cache()
3481 if (!btrfs_test_opt(root, INODE_MAP_CACHE)) in load_free_ino_cache()
3495 inode = lookup_free_ino_inode(root, path); in load_free_ino_cache()
3502 ret = __load_free_space_cache(root, inode, ctl, path, 0); in load_free_ino_cache()
3507 root->root_key.objectid); in load_free_ino_cache()
3515 int btrfs_write_out_ino_cache(struct btrfs_root *root, in btrfs_write_out_ino_cache() argument
3520 struct btrfs_free_space_ctl *ctl = root->free_ino_ctl; in btrfs_write_out_ino_cache()
3525 if (!btrfs_test_opt(root, INODE_MAP_CACHE)) in btrfs_write_out_ino_cache()
3529 ret = __btrfs_write_out_cache(root, inode, ctl, NULL, &io_ctl, in btrfs_write_out_ino_cache()
3539 ret = btrfs_wait_cache_io(root, trans, NULL, &io_ctl, path, 0); in btrfs_write_out_ino_cache()
3546 btrfs_err(root->fs_info, in btrfs_write_out_ino_cache()
3548 root->root_key.objectid); in btrfs_write_out_ino_cache()