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
245 btrfs_wait_cache_io(root, trans, block_group, in btrfs_truncate_free_space_cache()
270 ret = btrfs_truncate_inode_items(trans, root, inode, in btrfs_truncate_free_space_cache()
274 btrfs_abort_transaction(trans, root, ret); in btrfs_truncate_free_space_cache()
278 ret = btrfs_update_inode(trans, root, inode); in btrfs_truncate_free_space_cache()
285 btrfs_abort_transaction(trans, root, ret); in btrfs_truncate_free_space_cache()
310 struct btrfs_root *root, int write) in io_ctl_init() argument
332 io_ctl->root = root; in io_ctl_init()
397 btrfs_err(BTRFS_I(inode)->root->fs_info, in io_ctl_prepare_pages()
670 static int __load_free_space_cache(struct btrfs_root *root, struct inode *inode, in __load_free_space_cache() argument
694 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0); in __load_free_space_cache()
713 btrfs_info(root->fs_info, in __load_free_space_cache()
720 btrfs_err(root->fs_info, in __load_free_space_cache()
730 ret = io_ctl_init(&io_ctl, inode, root, 0); in __load_free_space_cache()
772 btrfs_err(root->fs_info, in __load_free_space_cache()
792 btrfs_err(root->fs_info, in __load_free_space_cache()
832 struct btrfs_root *root = fs_info->tree_root; in load_free_space_cache() local
856 inode = lookup_free_space_inode(root, block_group, path); in load_free_space_cache()
927 node = rb_first(&cluster->root); in write_cache_extent_entries()
949 node = rb_first(&cluster->root); in write_cache_extent_entries()
983 struct btrfs_root *root, in update_cache_item() argument
997 ret = btrfs_search_slot(trans, root, &key, path, 0, 1); in update_cache_item()
1037 write_pinned_extent_entries(struct btrfs_root *root, in write_pinned_extent_entries() argument
1056 unpin = root->fs_info->pinned_extents; in write_pinned_extent_entries()
1145 int btrfs_wait_cache_io(struct btrfs_root *root, in btrfs_wait_cache_io() argument
1158 root = root->fs_info->tree_root; in btrfs_wait_cache_io()
1166 ret = update_cache_item(trans, root, inode, path, offset, in btrfs_wait_cache_io()
1175 btrfs_err(root->fs_info, in btrfs_wait_cache_io()
1181 btrfs_update_inode(trans, root, inode); in btrfs_wait_cache_io()
1223 static int __btrfs_write_out_cache(struct btrfs_root *root, struct inode *inode, in __btrfs_write_out_cache() argument
1241 ret = io_ctl_init(io_ctl, inode, root, 1); in __btrfs_write_out_cache()
1287 ret = write_pinned_extent_entries(root, block_group, io_ctl, &entries); in __btrfs_write_out_cache()
1306 ret = btrfs_dirty_pages(root, inode, io_ctl->pages, io_ctl->num_pages, in __btrfs_write_out_cache()
1343 btrfs_update_inode(trans, root, inode); in __btrfs_write_out_cache()
1362 int btrfs_write_out_cache(struct btrfs_root *root, in btrfs_write_out_cache() argument
1371 root = root->fs_info->tree_root; in btrfs_write_out_cache()
1380 inode = lookup_free_space_inode(root, block_group, path); in btrfs_write_out_cache()
1384 ret = __btrfs_write_out_cache(root, inode, ctl, block_group, in btrfs_write_out_cache()
1389 btrfs_err(root->fs_info, in btrfs_write_out_cache()
1437 static int tree_insert_offset(struct rb_root *root, u64 offset, in tree_insert_offset() argument
1440 struct rb_node **p = &root->rb_node; in tree_insert_offset()
1483 rb_insert_color(node, root); in tree_insert_offset()
2028 node = rb_first(&cluster->root); in insert_into_bitmap()
2491 node = rb_first(&cluster->root); in __btrfs_return_cluster_to_free_space()
2497 rb_erase(&entry->offset_index, &cluster->root); in __btrfs_return_cluster_to_free_space()
2508 cluster->root = RB_ROOT; in __btrfs_return_cluster_to_free_space()
2700 node = rb_first(&cluster->root); in btrfs_alloc_from_cluster()
2741 rb_erase(&entry->offset_index, &cluster->root); in btrfs_alloc_from_cluster()
2821 ret = tree_insert_offset(&cluster->root, entry->offset, in btrfs_bitmap_cluster()
2911 ret = tree_insert_offset(&cluster->root, entry->offset, in setup_cluster_no_bitmap()
2975 int btrfs_find_space_cluster(struct btrfs_root *root, in btrfs_find_space_cluster() argument
2993 if (btrfs_test_opt(root, SSD_SPREAD)) { in btrfs_find_space_cluster()
3059 cluster->root = RB_ROOT; in btrfs_init_free_cluster()
3387 struct inode *lookup_free_ino_inode(struct btrfs_root *root, in lookup_free_ino_inode() argument
3392 spin_lock(&root->ino_cache_lock); in lookup_free_ino_inode()
3393 if (root->ino_cache_inode) in lookup_free_ino_inode()
3394 inode = igrab(root->ino_cache_inode); in lookup_free_ino_inode()
3395 spin_unlock(&root->ino_cache_lock); in lookup_free_ino_inode()
3399 inode = __lookup_free_space_inode(root, path, 0); in lookup_free_ino_inode()
3403 spin_lock(&root->ino_cache_lock); in lookup_free_ino_inode()
3404 if (!btrfs_fs_closing(root->fs_info)) in lookup_free_ino_inode()
3405 root->ino_cache_inode = igrab(inode); in lookup_free_ino_inode()
3406 spin_unlock(&root->ino_cache_lock); in lookup_free_ino_inode()
3411 int create_free_ino_inode(struct btrfs_root *root, in create_free_ino_inode() argument
3415 return __create_free_space_inode(root, trans, path, in create_free_ino_inode()
3419 int load_free_ino_cache(struct btrfs_fs_info *fs_info, struct btrfs_root *root) in load_free_ino_cache() argument
3421 struct btrfs_free_space_ctl *ctl = root->free_ino_ctl; in load_free_ino_cache()
3425 u64 root_gen = btrfs_root_generation(&root->root_item); in load_free_ino_cache()
3427 if (!btrfs_test_opt(root, INODE_MAP_CACHE)) in load_free_ino_cache()
3441 inode = lookup_free_ino_inode(root, path); in load_free_ino_cache()
3448 ret = __load_free_space_cache(root, inode, ctl, path, 0); in load_free_ino_cache()
3453 root->root_key.objectid); in load_free_ino_cache()
3461 int btrfs_write_out_ino_cache(struct btrfs_root *root, in btrfs_write_out_ino_cache() argument
3466 struct btrfs_free_space_ctl *ctl = root->free_ino_ctl; in btrfs_write_out_ino_cache()
3471 if (!btrfs_test_opt(root, INODE_MAP_CACHE)) in btrfs_write_out_ino_cache()
3475 ret = __btrfs_write_out_cache(root, inode, ctl, NULL, &io_ctl, in btrfs_write_out_ino_cache()
3485 ret = btrfs_wait_cache_io(root, trans, NULL, &io_ctl, path, 0); in btrfs_write_out_ino_cache()
3492 btrfs_err(root->fs_info, in btrfs_write_out_ino_cache()
3494 root->root_key.objectid); in btrfs_write_out_ino_cache()