Lines Matching refs:trans
476 static int update_backref_cache(struct btrfs_trans_handle *trans, in update_backref_cache() argument
483 cache->last_trans = trans->transid; in update_backref_cache()
487 if (cache->last_trans == trans->transid) in update_backref_cache()
1186 static int clone_backref_node(struct btrfs_trans_handle *trans, argument
1200 update_backref_cache(trans, cache);
1366 static struct btrfs_root *create_reloc_root(struct btrfs_trans_handle *trans, argument
1385 ret = btrfs_copy_root(trans, root, root->commit_root, &eb,
1391 trans->transid - 1);
1400 ret = btrfs_copy_root(trans, root, root->node, &eb,
1408 btrfs_set_root_generation(root_item, trans->transid);
1420 btrfs_set_root_otransid(root_item, trans->transid);
1426 ret = btrfs_insert_root(trans, root->fs_info->tree_root,
1433 reloc_root->last_trans = trans->transid;
1441 int btrfs_init_reloc_root(struct btrfs_trans_handle *trans, argument
1452 reloc_root->last_trans = trans->transid;
1460 if (!trans->reloc_reserved) {
1461 rsv = trans->block_rsv;
1462 trans->block_rsv = rc->block_rsv;
1465 reloc_root = create_reloc_root(trans, root, root->root_key.objectid);
1467 trans->block_rsv = rsv;
1478 int btrfs_update_reloc_root(struct btrfs_trans_handle *trans, argument
1503 ret = btrfs_update_root(trans, root->fs_info->tree_root,
1626 int replace_file_extents(struct btrfs_trans_handle *trans, argument
1716 ret = btrfs_inc_extent_ref(trans, root, new_bytenr,
1721 btrfs_abort_transaction(trans, root, ret);
1725 ret = btrfs_free_extent(trans, root, bytenr, num_bytes,
1729 btrfs_abort_transaction(trans, root, ret);
1761 int replace_path(struct btrfs_trans_handle *trans, argument
1799 ret = btrfs_cow_block(trans, dest, eb, NULL, 0, &eb);
1859 ret = btrfs_cow_block(trans, dest, eb, parent,
1884 ret = btrfs_search_slot(trans, src, &key, path, 0, 1);
1901 ret = btrfs_inc_extent_ref(trans, src, old_bytenr, blocksize,
1905 ret = btrfs_inc_extent_ref(trans, dest, new_bytenr, blocksize,
1910 ret = btrfs_free_extent(trans, src, new_bytenr, blocksize,
1915 ret = btrfs_free_extent(trans, dest, old_bytenr, blocksize,
2118 struct btrfs_trans_handle *trans = NULL; local
2173 trans = btrfs_start_transaction(root, 0);
2174 if (IS_ERR(trans)) {
2175 err = PTR_ERR(trans);
2176 trans = NULL;
2179 trans->block_rsv = rc->block_rsv;
2196 ret = replace_path(trans, root, reloc_root, path,
2224 btrfs_end_transaction_throttle(trans, root);
2225 trans = NULL;
2238 ret = btrfs_cow_block(trans, root, leaf, NULL, 0, &leaf);
2251 btrfs_update_reloc_root(trans, root);
2254 if (trans)
2255 btrfs_end_transaction_throttle(trans, root);
2270 struct btrfs_trans_handle *trans; local
2289 trans = btrfs_join_transaction(rc->extent_root);
2290 if (IS_ERR(trans)) {
2294 return PTR_ERR(trans);
2299 btrfs_end_transaction(trans, rc->extent_root);
2324 btrfs_update_reloc_root(trans, root);
2332 btrfs_commit_transaction(trans, rc->extent_root);
2334 btrfs_end_transaction(trans, rc->extent_root);
2445 static int record_reloc_root_in_trans(struct btrfs_trans_handle *trans, argument
2450 if (reloc_root->last_trans == trans->transid)
2457 return btrfs_record_root_in_trans(trans, root);
2461 struct btrfs_root *select_reloc_root(struct btrfs_trans_handle *trans, argument
2479 record_reloc_root_in_trans(trans, root);
2483 btrfs_record_root_in_trans(trans, root);
2592 static int reserve_metadata_space(struct btrfs_trans_handle *trans, argument
2603 trans->block_rsv = rc->block_rsv;
2636 static int do_relocation(struct btrfs_trans_handle *trans, argument
2662 root = select_reloc_root(trans, rc, upper, edges);
2678 ret = btrfs_search_slot(trans, root, key, path, 0, 1);
2726 ret = btrfs_cow_block(trans, root, eb, upper->eb,
2739 trans->transid);
2742 ret = btrfs_inc_extent_ref(trans, root,
2749 ret = btrfs_drop_subtree(trans, root, eb, upper->eb);
2772 static int link_to_upper(struct btrfs_trans_handle *trans, argument
2780 return do_relocation(trans, rc, node, &key, path, 0);
2783 static int finish_pending_nodes(struct btrfs_trans_handle *trans, argument
2801 ret = link_to_upper(trans, rc, node, path);
2899 static int relocate_tree_block(struct btrfs_trans_handle *trans, argument
2919 ret = reserve_metadata_space(trans, rc, node);
2928 btrfs_record_root_in_trans(trans, root);
2935 ret = btrfs_search_slot(trans, root, key, path, 0, 1);
2943 ret = do_relocation(trans, rc, node, key, path, 1);
2955 int relocate_tree_blocks(struct btrfs_trans_handle *trans, argument
3001 ret = relocate_tree_block(trans, rc, node, &block->key,
3011 err = finish_pending_nodes(trans, rc, path, err);
3445 struct btrfs_trans_handle *trans; local
3468 trans = btrfs_join_transaction(root);
3469 if (IS_ERR(trans)) {
3470 ret = PTR_ERR(trans);
3474 ret = btrfs_truncate_free_space_cache(root, trans, block_group, inode);
3476 btrfs_end_transaction(trans, root);
3871 struct btrfs_trans_handle *trans; local
3890 trans = btrfs_join_transaction(rc->extent_root);
3891 if (IS_ERR(trans)) {
3898 return PTR_ERR(trans);
3900 btrfs_commit_transaction(trans, rc->extent_root);
3908 struct btrfs_trans_handle *trans = NULL; local
3938 trans = btrfs_start_transaction(rc->extent_root, 0);
3939 if (IS_ERR(trans)) {
3940 err = PTR_ERR(trans);
3941 trans = NULL;
3945 if (update_backref_cache(trans, &rc->backref_cache)) {
3946 btrfs_end_transaction(trans, rc->extent_root);
4017 ret = relocate_tree_blocks(trans, rc, &blocks);
4023 rc->backref_cache.last_trans = trans->transid - 1;
4034 btrfs_end_transaction_throttle(trans, rc->extent_root);
4036 trans = NULL;
4049 if (trans && progress && err == -ENOSPC) {
4050 ret = btrfs_force_chunk_alloc(trans, rc->extent_root,
4063 if (trans) {
4064 btrfs_end_transaction_throttle(trans, rc->extent_root);
4090 trans = btrfs_join_transaction(rc->extent_root);
4091 if (IS_ERR(trans))
4092 err = PTR_ERR(trans);
4094 btrfs_commit_transaction(trans, rc->extent_root);
4101 static int __insert_orphan_inode(struct btrfs_trans_handle *trans, argument
4113 ret = btrfs_insert_empty_inode(trans, root, path, objectid);
4140 struct btrfs_trans_handle *trans; local
4150 trans = btrfs_start_transaction(root, 6);
4151 if (IS_ERR(trans))
4152 return ERR_CAST(trans);
4158 err = __insert_orphan_inode(trans, root, objectid);
4168 err = btrfs_orphan_add(trans, inode);
4170 btrfs_end_transaction(trans, root);
4304 struct btrfs_trans_handle *trans; local
4307 trans = btrfs_start_transaction(root->fs_info->tree_root, 0);
4308 if (IS_ERR(trans))
4309 return PTR_ERR(trans);
4315 ret = btrfs_update_root(trans, root->fs_info->tree_root,
4318 err = btrfs_end_transaction(trans, root->fs_info->tree_root);
4339 struct btrfs_trans_handle *trans; local
4417 trans = btrfs_join_transaction(rc->extent_root);
4418 if (IS_ERR(trans)) {
4420 err = PTR_ERR(trans);
4449 err = btrfs_commit_transaction(trans, rc->extent_root);
4457 trans = btrfs_join_transaction(rc->extent_root);
4458 if (IS_ERR(trans))
4459 err = PTR_ERR(trans);
4461 err = btrfs_commit_transaction(trans, rc->extent_root);
4533 int btrfs_reloc_cow_block(struct btrfs_trans_handle *trans, argument
4587 ret = replace_file_extents(trans, rc, root, cow);
4628 int btrfs_reloc_post_snapshot(struct btrfs_trans_handle *trans, argument
4652 reloc_root = create_reloc_root(trans, root->reloc_root,
4662 ret = clone_backref_node(trans, rc, root, reloc_root);