Lines Matching defs:trans
220 static int init_first_rw_device(struct btrfs_trans_handle *trans);
1716 static int btrfs_free_dev_extent(struct btrfs_trans_handle *trans,
1737 ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
1763 ret = btrfs_del_item(trans, root, path);
1768 set_bit(BTRFS_TRANS_HAVE_FREE_BGS, &trans->transaction->flags);
1775 static int btrfs_alloc_dev_extent(struct btrfs_trans_handle *trans,
1796 ret = btrfs_insert_empty_item(trans, root, path, &key,
1883 static int btrfs_add_dev_item(struct btrfs_trans_handle *trans,
1901 ret = btrfs_insert_empty_item(trans, trans->fs_info->chunk_root, path,
1927 write_extent_buffer(leaf, trans->fs_info->fs_devices->metadata_uuid,
1964 struct btrfs_trans_handle *trans;
1970 trans = btrfs_start_transaction(root, 0);
1971 if (IS_ERR(trans)) {
1973 return PTR_ERR(trans);
1979 ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
1983 btrfs_abort_transaction(trans, ret);
1984 btrfs_end_transaction(trans);
1988 ret = btrfs_del_item(trans, root, path);
1990 btrfs_abort_transaction(trans, ret);
1991 btrfs_end_transaction(trans);
1997 ret = btrfs_commit_transaction(trans);
2507 static int btrfs_finish_sprout(struct btrfs_trans_handle *trans)
2509 struct btrfs_fs_info *fs_info = trans->fs_info;
2530 ret = btrfs_search_slot(trans, root, &key, path, 0, 1);
2583 struct btrfs_trans_handle *trans;
2636 trans = btrfs_start_transaction(root, 0);
2637 if (IS_ERR(trans)) {
2638 ret = PTR_ERR(trans);
2644 device->generation = trans->transid;
2664 btrfs_abort_transaction(trans, ret);
2710 ret = init_first_rw_device(trans);
2713 btrfs_abort_transaction(trans, ret);
2718 ret = btrfs_add_dev_item(trans, device);
2720 btrfs_abort_transaction(trans, ret);
2725 ret = btrfs_finish_sprout(trans);
2727 btrfs_abort_transaction(trans, ret);
2738 ret = btrfs_commit_transaction(trans);
2752 trans = btrfs_attach_transaction(root);
2753 if (IS_ERR(trans)) {
2754 if (PTR_ERR(trans) == -ENOENT)
2756 ret = PTR_ERR(trans);
2757 trans = NULL;
2760 ret = btrfs_commit_transaction(trans);
2798 if (trans)
2799 btrfs_end_transaction(trans);
2811 static noinline int btrfs_update_device(struct btrfs_trans_handle *trans,
2829 ret = btrfs_search_slot(trans, root, &key, path, 0, 1);
2857 int btrfs_grow_device(struct btrfs_trans_handle *trans,
2889 &trans->transaction->dev_update_list);
2892 return btrfs_update_device(trans, device);
2895 static int btrfs_free_chunk(struct btrfs_trans_handle *trans, u64 chunk_offset)
2897 struct btrfs_fs_info *fs_info = trans->fs_info;
2911 ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
2921 ret = btrfs_del_item(trans, root, path);
3014 int btrfs_remove_chunk(struct btrfs_trans_handle *trans, u64 chunk_offset)
3016 struct btrfs_fs_info *fs_info = trans->fs_info;
3035 check_system_chunk(trans, map->type);
3046 ret = btrfs_free_dev_extent(trans, device,
3051 btrfs_abort_transaction(trans, ret);
3064 ret = btrfs_update_device(trans, device);
3067 btrfs_abort_transaction(trans, ret);
3073 ret = btrfs_free_chunk(trans, chunk_offset);
3075 btrfs_abort_transaction(trans, ret);
3084 btrfs_abort_transaction(trans, ret);
3089 ret = btrfs_remove_block_group(trans, chunk_offset, em);
3091 btrfs_abort_transaction(trans, ret);
3104 struct btrfs_trans_handle *trans;
3135 trans = btrfs_start_trans_remove_block_group(root->fs_info,
3137 if (IS_ERR(trans)) {
3138 ret = PTR_ERR(trans);
3147 ret = btrfs_remove_chunk(trans, chunk_offset);
3148 btrfs_end_transaction(trans);
3251 struct btrfs_trans_handle *trans;
3254 trans = btrfs_join_transaction(fs_info->tree_root);
3255 if (IS_ERR(trans))
3256 return PTR_ERR(trans);
3258 ret = btrfs_force_chunk_alloc(trans, BTRFS_BLOCK_GROUP_DATA);
3259 btrfs_end_transaction(trans);
3272 struct btrfs_trans_handle *trans;
3284 trans = btrfs_start_transaction(root, 0);
3285 if (IS_ERR(trans)) {
3287 return PTR_ERR(trans);
3294 ret = btrfs_insert_empty_item(trans, root, path, &key,
3316 err = btrfs_commit_transaction(trans);
3325 struct btrfs_trans_handle *trans;
3334 trans = btrfs_start_transaction_fallback_global_rsv(root, 0);
3335 if (IS_ERR(trans)) {
3337 return PTR_ERR(trans);
3344 ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
3352 ret = btrfs_del_item(trans, root, path);
3355 err = btrfs_commit_transaction(trans);
4489 struct btrfs_trans_handle *trans = NULL;
4535 if (trans)
4543 trans = btrfs_start_transaction(fs_info->uuid_root, 2);
4544 if (IS_ERR(trans)) {
4545 ret = PTR_ERR(trans);
4555 ret = btrfs_uuid_tree_add(trans, root_item.uuid,
4566 ret = btrfs_uuid_tree_add(trans,
4579 if (trans) {
4580 ret = btrfs_end_transaction(trans);
4581 trans = NULL;
4603 if (trans && !IS_ERR(trans))
4604 btrfs_end_transaction(trans);
4615 struct btrfs_trans_handle *trans;
4625 trans = btrfs_start_transaction(tree_root, 2);
4626 if (IS_ERR(trans))
4627 return PTR_ERR(trans);
4629 uuid_root = btrfs_create_tree(trans, BTRFS_UUID_TREE_OBJECTID);
4632 btrfs_abort_transaction(trans, ret);
4633 btrfs_end_transaction(trans);
4639 ret = btrfs_commit_transaction(trans);
4664 struct btrfs_trans_handle *trans;
4694 trans = btrfs_start_transaction(root, 0);
4695 if (IS_ERR(trans)) {
4697 return PTR_ERR(trans);
4715 ret = btrfs_commit_transaction(trans);
4720 btrfs_end_transaction(trans);
4805 trans = btrfs_start_transaction(root, 0);
4806 if (IS_ERR(trans)) {
4807 ret = PTR_ERR(trans);
4819 &trans->transaction->dev_update_list);
4827 ret = btrfs_update_device(trans, device);
4829 btrfs_abort_transaction(trans, ret);
4830 btrfs_end_transaction(trans);
4832 ret = btrfs_commit_transaction(trans);
5151 static int create_chunk(struct btrfs_trans_handle *trans,
5155 struct btrfs_fs_info *info = trans->fs_info;
5209 ret = btrfs_make_block_group(trans, 0, type, start, ctl->chunk_size);
5220 &trans->transaction->dev_update_list);
5245 int btrfs_alloc_chunk(struct btrfs_trans_handle *trans, u64 type)
5247 struct btrfs_fs_info *info = trans->fs_info;
5289 ret = create_chunk(trans, &ctl, devices_info);
5303 int btrfs_finish_chunk_alloc(struct btrfs_trans_handle *trans,
5306 struct btrfs_fs_info *fs_info = trans->fs_info;
5347 ret = btrfs_update_device(trans, device);
5350 ret = btrfs_alloc_dev_extent(trans, device, chunk_offset,
5386 ret = btrfs_insert_item(trans, chunk_root, &key, chunk, item_size);
5401 static noinline int init_first_rw_device(struct btrfs_trans_handle *trans)
5403 struct btrfs_fs_info *fs_info = trans->fs_info;
5408 ret = btrfs_alloc_chunk(trans, alloc_profile);
5413 ret = btrfs_alloc_chunk(trans, alloc_profile);
7398 static int update_dev_stat_item(struct btrfs_trans_handle *trans,
7401 struct btrfs_fs_info *fs_info = trans->fs_info;
7417 ret = btrfs_search_slot(trans, dev_root, &key, path, -1, 1);
7428 ret = btrfs_del_item(trans, dev_root, path);
7441 ret = btrfs_insert_empty_item(trans, dev_root, path,
7466 int btrfs_run_dev_stats(struct btrfs_trans_handle *trans)
7468 struct btrfs_fs_info *fs_info = trans->fs_info;
7494 ret = update_dev_stat_item(trans, device);
7588 void btrfs_commit_device_sizes(struct btrfs_transaction *trans)
7592 ASSERT(trans->state == TRANS_STATE_COMMIT_DOING);
7594 if (list_empty(&trans->dev_update_list))
7602 mutex_lock(&trans->fs_info->chunk_mutex);
7603 list_for_each_entry_safe(curr, next, &trans->dev_update_list,
7609 mutex_unlock(&trans->fs_info->chunk_mutex);