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);
1857 ret = btrfs_cow_block(trans, dest, eb, parent,
1882 ret = btrfs_search_slot(trans, src, &key, path, 0, 1);
1899 ret = btrfs_inc_extent_ref(trans, src, old_bytenr, blocksize,
1904 ret = btrfs_inc_extent_ref(trans, dest, new_bytenr, blocksize,
1909 ret = btrfs_free_extent(trans, src, new_bytenr, blocksize,
1915 ret = btrfs_free_extent(trans, dest, old_bytenr, blocksize,
2116 struct btrfs_trans_handle *trans = NULL; local
2171 trans = btrfs_start_transaction(root, 0);
2172 if (IS_ERR(trans)) {
2173 err = PTR_ERR(trans);
2174 trans = NULL;
2177 trans->block_rsv = rc->block_rsv;
2194 ret = replace_path(trans, root, reloc_root, path,
2222 btrfs_end_transaction_throttle(trans, root);
2223 trans = NULL;
2236 ret = btrfs_cow_block(trans, root, leaf, NULL, 0, &leaf);
2249 btrfs_update_reloc_root(trans, root);
2252 if (trans)
2253 btrfs_end_transaction_throttle(trans, root);
2268 struct btrfs_trans_handle *trans; local
2287 trans = btrfs_join_transaction(rc->extent_root);
2288 if (IS_ERR(trans)) {
2292 return PTR_ERR(trans);
2297 btrfs_end_transaction(trans, rc->extent_root);
2322 btrfs_update_reloc_root(trans, root);
2330 btrfs_commit_transaction(trans, rc->extent_root);
2332 btrfs_end_transaction(trans, rc->extent_root);
2443 static int record_reloc_root_in_trans(struct btrfs_trans_handle *trans, argument
2448 if (reloc_root->last_trans == trans->transid)
2455 return btrfs_record_root_in_trans(trans, root);
2459 struct btrfs_root *select_reloc_root(struct btrfs_trans_handle *trans, argument
2477 record_reloc_root_in_trans(trans, root);
2481 btrfs_record_root_in_trans(trans, root);
2522 struct btrfs_root *select_one_root(struct btrfs_trans_handle *trans, argument
2591 static int reserve_metadata_space(struct btrfs_trans_handle *trans, argument
2602 trans->block_rsv = rc->block_rsv;
2635 static int do_relocation(struct btrfs_trans_handle *trans, argument
2661 root = select_reloc_root(trans, rc, upper, edges);
2677 ret = btrfs_search_slot(trans, root, key, path, 0, 1);
2722 ret = btrfs_cow_block(trans, root, eb, upper->eb,
2735 trans->transid);
2738 ret = btrfs_inc_extent_ref(trans, root,
2745 ret = btrfs_drop_subtree(trans, root, eb, upper->eb);
2768 static int link_to_upper(struct btrfs_trans_handle *trans, argument
2776 return do_relocation(trans, rc, node, &key, path, 0);
2779 static int finish_pending_nodes(struct btrfs_trans_handle *trans, argument
2797 ret = link_to_upper(trans, rc, node, path);
2893 static int relocate_tree_block(struct btrfs_trans_handle *trans, argument
2906 root = select_one_root(trans, node);
2913 ret = reserve_metadata_space(trans, rc, node);
2922 btrfs_record_root_in_trans(trans, root);
2929 ret = btrfs_search_slot(trans, root, key, path, 0, 1);
2937 ret = do_relocation(trans, rc, node, key, path, 1);
2949 int relocate_tree_blocks(struct btrfs_trans_handle *trans, argument
2995 ret = relocate_tree_block(trans, rc, node, &block->key,
3005 err = finish_pending_nodes(trans, rc, path, err);
3439 struct btrfs_trans_handle *trans; local
3462 trans = btrfs_join_transaction(root);
3463 if (IS_ERR(trans)) {
3464 ret = PTR_ERR(trans);
3468 ret = btrfs_truncate_free_space_cache(root, trans, block_group, inode);
3470 btrfs_end_transaction(trans, root);
3749 int find_next_extent(struct btrfs_trans_handle *trans, argument
3866 struct btrfs_trans_handle *trans; local
3885 trans = btrfs_join_transaction(rc->extent_root);
3886 if (IS_ERR(trans)) {
3893 return PTR_ERR(trans);
3895 btrfs_commit_transaction(trans, rc->extent_root);
3903 struct btrfs_trans_handle *trans = NULL; local
3933 trans = btrfs_start_transaction(rc->extent_root, 0);
3934 if (IS_ERR(trans)) {
3935 err = PTR_ERR(trans);
3936 trans = NULL;
3940 if (update_backref_cache(trans, &rc->backref_cache)) {
3941 btrfs_end_transaction(trans, rc->extent_root);
3945 ret = find_next_extent(trans, rc, path, &key);
4008 ret = relocate_tree_blocks(trans, rc, &blocks);
4014 rc->backref_cache.last_trans = trans->transid - 1;
4025 btrfs_end_transaction_throttle(trans, rc->extent_root);
4027 trans = NULL;
4040 if (trans && progress && err == -ENOSPC) {
4041 ret = btrfs_force_chunk_alloc(trans, rc->extent_root,
4054 if (trans) {
4055 btrfs_end_transaction_throttle(trans, rc->extent_root);
4081 trans = btrfs_join_transaction(rc->extent_root);
4082 if (IS_ERR(trans))
4083 err = PTR_ERR(trans);
4085 btrfs_commit_transaction(trans, rc->extent_root);
4092 static int __insert_orphan_inode(struct btrfs_trans_handle *trans, argument
4104 ret = btrfs_insert_empty_inode(trans, root, path, objectid);
4131 struct btrfs_trans_handle *trans; local
4141 trans = btrfs_start_transaction(root, 6);
4142 if (IS_ERR(trans))
4143 return ERR_CAST(trans);
4149 err = __insert_orphan_inode(trans, root, objectid);
4159 err = btrfs_orphan_add(trans, inode);
4161 btrfs_end_transaction(trans, root);
4297 struct btrfs_trans_handle *trans; local
4300 trans = btrfs_start_transaction(root->fs_info->tree_root, 0);
4301 if (IS_ERR(trans))
4302 return PTR_ERR(trans);
4308 ret = btrfs_update_root(trans, root->fs_info->tree_root,
4311 err = btrfs_end_transaction(trans, root->fs_info->tree_root);
4332 struct btrfs_trans_handle *trans; local
4410 trans = btrfs_join_transaction(rc->extent_root);
4411 if (IS_ERR(trans)) {
4413 err = PTR_ERR(trans);
4442 err = btrfs_commit_transaction(trans, rc->extent_root);
4450 trans = btrfs_join_transaction(rc->extent_root);
4451 if (IS_ERR(trans))
4452 err = PTR_ERR(trans);
4454 err = btrfs_commit_transaction(trans, rc->extent_root);
4526 int btrfs_reloc_cow_block(struct btrfs_trans_handle *trans, argument
4580 ret = replace_file_extents(trans, rc, root, cow);
4588 void btrfs_reloc_pre_snapshot(struct btrfs_trans_handle *trans, argument
4622 int btrfs_reloc_post_snapshot(struct btrfs_trans_handle *trans, argument
4646 reloc_root = create_reloc_root(trans, root->reloc_root,
4656 ret = clone_backref_node(trans, rc, root, reloc_root);