Lines Matching refs:root

52 				struct btrfs_root *root, u64 inode_id)  in btrfs_init_delayed_node()  argument
54 delayed_node->root = root; in btrfs_init_delayed_node()
82 struct btrfs_root *root) in btrfs_get_delayed_root() argument
84 return root->fs_info->delayed_root; in btrfs_get_delayed_root()
90 struct btrfs_root *root = btrfs_inode->root; in btrfs_get_delayed_node() local
100 spin_lock(&root->inode_lock); in btrfs_get_delayed_node()
101 node = radix_tree_lookup(&root->delayed_nodes_tree, ino); in btrfs_get_delayed_node()
106 spin_unlock(&root->inode_lock); in btrfs_get_delayed_node()
112 spin_unlock(&root->inode_lock); in btrfs_get_delayed_node()
115 spin_unlock(&root->inode_lock); in btrfs_get_delayed_node()
126 struct btrfs_root *root = btrfs_inode->root; in btrfs_get_or_create_delayed_node() local
138 btrfs_init_delayed_node(node, root, ino); in btrfs_get_or_create_delayed_node()
149 spin_lock(&root->inode_lock); in btrfs_get_or_create_delayed_node()
150 ret = radix_tree_insert(&root->delayed_nodes_tree, ino, node); in btrfs_get_or_create_delayed_node()
152 spin_unlock(&root->inode_lock); in btrfs_get_or_create_delayed_node()
158 spin_unlock(&root->inode_lock); in btrfs_get_or_create_delayed_node()
169 static void btrfs_queue_delayed_node(struct btrfs_delayed_root *root, in btrfs_queue_delayed_node() argument
173 spin_lock(&root->lock); in btrfs_queue_delayed_node()
176 list_move_tail(&node->p_list, &root->prepare_list); in btrfs_queue_delayed_node()
178 list_add_tail(&node->p_list, &root->prepare_list); in btrfs_queue_delayed_node()
180 list_add_tail(&node->n_list, &root->node_list); in btrfs_queue_delayed_node()
181 list_add_tail(&node->p_list, &root->prepare_list); in btrfs_queue_delayed_node()
183 root->nodes++; in btrfs_queue_delayed_node()
186 spin_unlock(&root->lock); in btrfs_queue_delayed_node()
190 static void btrfs_dequeue_delayed_node(struct btrfs_delayed_root *root, in btrfs_dequeue_delayed_node() argument
193 spin_lock(&root->lock); in btrfs_dequeue_delayed_node()
195 root->nodes--; in btrfs_dequeue_delayed_node()
202 spin_unlock(&root->lock); in btrfs_dequeue_delayed_node()
231 delayed_root = node->root->fs_info->delayed_root; in btrfs_next_delayed_node()
260 delayed_root = delayed_node->root->fs_info->delayed_root; in __btrfs_release_delayed_node()
271 struct btrfs_root *root = delayed_node->root; in __btrfs_release_delayed_node() local
272 spin_lock(&root->inode_lock); in __btrfs_release_delayed_node()
274 radix_tree_delete(&root->delayed_nodes_tree, in __btrfs_release_delayed_node()
278 spin_unlock(&root->inode_lock); in __btrfs_release_delayed_node()
340 struct rb_root *root, in __btrfs_lookup_delayed_item() argument
349 node = root->rb_node; in __btrfs_lookup_delayed_item()
407 struct rb_root *root; in __btrfs_add_delayed_item() local
412 root = &delayed_node->ins_root; in __btrfs_add_delayed_item()
414 root = &delayed_node->del_root; in __btrfs_add_delayed_item()
417 p = &root->rb_node; in __btrfs_add_delayed_item()
435 rb_insert_color(node, root); in __btrfs_add_delayed_item()
445 atomic_inc(&delayed_node->root->fs_info->delayed_root->items); in __btrfs_add_delayed_item()
478 struct rb_root *root; in __btrfs_remove_delayed_item() local
481 delayed_root = delayed_item->delayed_node->root->fs_info->delayed_root; in __btrfs_remove_delayed_item()
488 root = &delayed_item->delayed_node->ins_root; in __btrfs_remove_delayed_item()
490 root = &delayed_item->delayed_node->del_root; in __btrfs_remove_delayed_item()
492 rb_erase(&delayed_item->rb_node, root); in __btrfs_remove_delayed_item()
547 struct btrfs_root *root, in btrfs_delayed_item_reserve_metadata() argument
559 dst_rsv = &root->fs_info->delayed_block_rsv; in btrfs_delayed_item_reserve_metadata()
561 num_bytes = btrfs_calc_trans_metadata_size(root, 1); in btrfs_delayed_item_reserve_metadata()
564 trace_btrfs_space_reservation(root->fs_info, "delayed_item", in btrfs_delayed_item_reserve_metadata()
573 static void btrfs_delayed_item_release_metadata(struct btrfs_root *root, in btrfs_delayed_item_release_metadata() argument
581 rsv = &root->fs_info->delayed_block_rsv; in btrfs_delayed_item_release_metadata()
582 trace_btrfs_space_reservation(root->fs_info, "delayed_item", in btrfs_delayed_item_release_metadata()
585 btrfs_block_rsv_release(root, rsv, in btrfs_delayed_item_release_metadata()
591 struct btrfs_root *root, in btrfs_delayed_inode_reserve_metadata() argument
602 dst_rsv = &root->fs_info->delayed_block_rsv; in btrfs_delayed_inode_reserve_metadata()
604 num_bytes = btrfs_calc_trans_metadata_size(root, 1); in btrfs_delayed_inode_reserve_metadata()
617 ret = btrfs_block_rsv_add(root, dst_rsv, num_bytes, in btrfs_delayed_inode_reserve_metadata()
629 trace_btrfs_space_reservation(root->fs_info, in btrfs_delayed_inode_reserve_metadata()
653 ret = btrfs_block_rsv_add(root, dst_rsv, num_bytes, in btrfs_delayed_inode_reserve_metadata()
666 ret = btrfs_block_rsv_migrate(&root->fs_info->global_block_rsv, in btrfs_delayed_inode_reserve_metadata()
689 trace_btrfs_space_reservation(root->fs_info, "delayed_inode", in btrfs_delayed_inode_reserve_metadata()
695 trace_btrfs_space_reservation(root->fs_info, "delalloc", in btrfs_delayed_inode_reserve_metadata()
697 btrfs_block_rsv_release(root, src_rsv, num_bytes); in btrfs_delayed_inode_reserve_metadata()
703 static void btrfs_delayed_inode_release_metadata(struct btrfs_root *root, in btrfs_delayed_inode_release_metadata() argument
711 rsv = &root->fs_info->delayed_block_rsv; in btrfs_delayed_inode_release_metadata()
712 trace_btrfs_space_reservation(root->fs_info, "delayed_inode", in btrfs_delayed_inode_release_metadata()
714 btrfs_block_rsv_release(root, rsv, in btrfs_delayed_inode_release_metadata()
723 static int btrfs_batch_insert_items(struct btrfs_root *root, in btrfs_batch_insert_items() argument
743 free_space = btrfs_leaf_free_space(root, leaf); in btrfs_batch_insert_items()
804 setup_items_for_insert(root, path, keys, data_size, in btrfs_batch_insert_items()
816 btrfs_delayed_item_release_metadata(root, curr); in btrfs_batch_insert_items()
834 struct btrfs_root *root, in btrfs_insert_delayed_item() argument
842 ret = btrfs_insert_empty_item(trans, root, path, &delayed_item->key, in btrfs_insert_delayed_item()
855 btrfs_delayed_item_release_metadata(root, delayed_item); in btrfs_insert_delayed_item()
865 struct btrfs_root *root, in btrfs_insert_delayed_items() argument
877 ret = btrfs_insert_delayed_item(trans, root, path, curr); in btrfs_insert_delayed_items()
888 btrfs_batch_insert_items(root, path, curr); in btrfs_insert_delayed_items()
903 struct btrfs_root *root, in btrfs_batch_delete_items() argument
951 ret = btrfs_del_items(trans, root, path, path->slots[0], nitems); in btrfs_batch_delete_items()
956 btrfs_delayed_item_release_metadata(root, curr); in btrfs_batch_delete_items()
967 struct btrfs_root *root, in btrfs_delete_delayed_items() argument
979 ret = btrfs_search_slot(trans, root, &curr->key, path, -1, 1); in btrfs_delete_delayed_items()
999 btrfs_batch_delete_items(trans, root, path, curr); in btrfs_delete_delayed_items()
1016 BUG_ON(!delayed_node->root); in btrfs_release_delayed_inode()
1020 delayed_root = delayed_node->root->fs_info->delayed_root; in btrfs_release_delayed_inode()
1029 ASSERT(delayed_node->root); in btrfs_release_delayed_iref()
1033 delayed_root = delayed_node->root->fs_info->delayed_root; in btrfs_release_delayed_iref()
1038 struct btrfs_root *root, in __btrfs_update_delayed_inode() argument
1057 ret = btrfs_lookup_inode(trans, root, path, &key, mod); in __btrfs_update_delayed_inode()
1092 btrfs_del_item(trans, root, path); in __btrfs_update_delayed_inode()
1098 btrfs_delayed_inode_release_metadata(root, node); in __btrfs_update_delayed_inode()
1108 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in __btrfs_update_delayed_inode()
1120 struct btrfs_root *root, in btrfs_update_delayed_inode() argument
1132 ret = __btrfs_update_delayed_inode(trans, root, path, node); in btrfs_update_delayed_inode()
1144 ret = btrfs_insert_delayed_items(trans, path, node->root, node); in __btrfs_commit_inode_delayed_items()
1148 ret = btrfs_delete_delayed_items(trans, path, node->root, node); in __btrfs_commit_inode_delayed_items()
1152 ret = btrfs_update_delayed_inode(trans, node->root, path, node); in __btrfs_commit_inode_delayed_items()
1163 struct btrfs_root *root, int nr) in __btrfs_run_delayed_items() argument
1181 trans->block_rsv = &root->fs_info->delayed_block_rsv; in __btrfs_run_delayed_items()
1183 delayed_root = btrfs_get_delayed_root(root); in __btrfs_run_delayed_items()
1192 btrfs_abort_transaction(trans, root, ret); in __btrfs_run_delayed_items()
1210 struct btrfs_root *root) in btrfs_run_delayed_items() argument
1212 return __btrfs_run_delayed_items(trans, root, -1); in btrfs_run_delayed_items()
1216 struct btrfs_root *root, int nr) in btrfs_run_delayed_items_nr() argument
1218 return __btrfs_run_delayed_items(trans, root, nr); in btrfs_run_delayed_items_nr()
1248 trans->block_rsv = &delayed_node->root->fs_info->delayed_block_rsv; in btrfs_commit_inode_delayed_items()
1278 trans = btrfs_join_transaction(delayed_node->root); in btrfs_commit_inode_delayed_inode()
1292 trans->block_rsv = &delayed_node->root->fs_info->delayed_block_rsv; in btrfs_commit_inode_delayed_inode()
1296 ret = __btrfs_update_delayed_inode(trans, delayed_node->root, in btrfs_commit_inode_delayed_inode()
1305 btrfs_end_transaction(trans, delayed_node->root); in btrfs_commit_inode_delayed_inode()
1306 btrfs_btree_balance_dirty(delayed_node->root); in btrfs_commit_inode_delayed_inode()
1338 struct btrfs_root *root; in btrfs_async_run_delayed_root() local
1358 root = delayed_node->root; in btrfs_async_run_delayed_root()
1360 trans = btrfs_join_transaction(root); in btrfs_async_run_delayed_root()
1365 trans->block_rsv = &root->fs_info->delayed_block_rsv; in btrfs_async_run_delayed_root()
1370 btrfs_end_transaction(trans, root); in btrfs_async_run_delayed_root()
1371 btrfs_btree_balance_dirty_nodelay(root); in btrfs_async_run_delayed_root()
1410 void btrfs_assert_delayed_root_empty(struct btrfs_root *root) in btrfs_assert_delayed_root_empty() argument
1413 delayed_root = btrfs_get_delayed_root(root); in btrfs_assert_delayed_root_empty()
1430 void btrfs_balance_delayed_items(struct btrfs_root *root) in btrfs_balance_delayed_items() argument
1433 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_balance_delayed_items()
1435 delayed_root = btrfs_get_delayed_root(root); in btrfs_balance_delayed_items()
1460 struct btrfs_root *root, const char *name, in btrfs_insert_delayed_dir_index() argument
1492 ret = btrfs_delayed_item_reserve_metadata(trans, root, delayed_item); in btrfs_insert_delayed_dir_index()
1503 btrfs_err(root->fs_info, "err add delayed dir index item(name: %.*s) " in btrfs_insert_delayed_dir_index()
1506 name_len, name, delayed_node->root->objectid, in btrfs_insert_delayed_dir_index()
1517 static int btrfs_delete_delayed_insertion_item(struct btrfs_root *root, in btrfs_delete_delayed_insertion_item() argument
1530 btrfs_delayed_item_release_metadata(root, item); in btrfs_delete_delayed_insertion_item()
1537 struct btrfs_root *root, struct inode *dir, in btrfs_delete_delayed_dir_index() argument
1553 ret = btrfs_delete_delayed_insertion_item(root, node, &item_key); in btrfs_delete_delayed_dir_index()
1565 ret = btrfs_delayed_item_reserve_metadata(trans, root, item); in btrfs_delete_delayed_dir_index()
1575 btrfs_err(root->fs_info, "err add delayed dir index item(index: %llu) " in btrfs_delete_delayed_dir_index()
1578 index, node->root->objectid, node->inode_id, in btrfs_delete_delayed_dir_index()
1840 struct btrfs_root *root, struct inode *inode) in btrfs_delayed_update_inode() argument
1855 ret = btrfs_delayed_inode_reserve_metadata(trans, root, inode, in btrfs_delayed_update_inode()
1863 atomic_inc(&root->fs_info->delayed_root->items); in btrfs_delayed_update_inode()
1879 if (BTRFS_I(inode)->root->fs_info->log_root_recovering) in btrfs_delayed_delete_inode_ref()
1906 atomic_inc(&BTRFS_I(inode)->root->fs_info->delayed_root->items); in btrfs_delayed_delete_inode_ref()
1915 struct btrfs_root *root = delayed_node->root; in __btrfs_kill_delayed_node() local
1921 btrfs_delayed_item_release_metadata(root, curr_item); in __btrfs_kill_delayed_node()
1929 btrfs_delayed_item_release_metadata(root, curr_item); in __btrfs_kill_delayed_node()
1939 btrfs_delayed_inode_release_metadata(root, delayed_node); in __btrfs_kill_delayed_node()
1957 void btrfs_kill_all_delayed_nodes(struct btrfs_root *root) in btrfs_kill_all_delayed_nodes() argument
1964 spin_lock(&root->inode_lock); in btrfs_kill_all_delayed_nodes()
1965 n = radix_tree_gang_lookup(&root->delayed_nodes_tree, in btrfs_kill_all_delayed_nodes()
1969 spin_unlock(&root->inode_lock); in btrfs_kill_all_delayed_nodes()
1977 spin_unlock(&root->inode_lock); in btrfs_kill_all_delayed_nodes()
1986 void btrfs_destroy_delayed_inodes(struct btrfs_root *root) in btrfs_destroy_delayed_inodes() argument
1991 delayed_root = btrfs_get_delayed_root(root); in btrfs_destroy_delayed_inodes()