Lines Matching defs:trans
583 static int add_qgroup_relation_item(struct btrfs_trans_handle *trans, u64 src,
587 struct btrfs_root *quota_root = trans->fs_info->quota_root;
599 ret = btrfs_insert_empty_item(trans, quota_root, path, &key, 0);
607 static int del_qgroup_relation_item(struct btrfs_trans_handle *trans, u64 src,
611 struct btrfs_root *quota_root = trans->fs_info->quota_root;
623 ret = btrfs_search_slot(trans, quota_root, &key, path, -1, 1);
632 ret = btrfs_del_item(trans, quota_root, path);
638 static int add_qgroup_item(struct btrfs_trans_handle *trans,
665 ret = btrfs_insert_empty_item(trans, quota_root, path, &key,
673 btrfs_set_qgroup_info_generation(leaf, qgroup_info, trans->transid);
684 ret = btrfs_insert_empty_item(trans, quota_root, path, &key,
706 static int del_qgroup_item(struct btrfs_trans_handle *trans, u64 qgroupid)
709 struct btrfs_root *quota_root = trans->fs_info->quota_root;
720 ret = btrfs_search_slot(trans, quota_root, &key, path, -1, 1);
729 ret = btrfs_del_item(trans, quota_root, path);
736 ret = btrfs_search_slot(trans, quota_root, &key, path, -1, 1);
745 ret = btrfs_del_item(trans, quota_root, path);
752 static int update_qgroup_limit_item(struct btrfs_trans_handle *trans,
755 struct btrfs_root *quota_root = trans->fs_info->quota_root;
771 ret = btrfs_search_slot(trans, quota_root, &key, path, 0, 1);
794 static int update_qgroup_info_item(struct btrfs_trans_handle *trans,
797 struct btrfs_fs_info *fs_info = trans->fs_info;
817 ret = btrfs_search_slot(trans, quota_root, &key, path, 0, 1);
827 btrfs_set_qgroup_info_generation(l, qgroup_info, trans->transid);
840 static int update_qgroup_status_item(struct btrfs_trans_handle *trans)
842 struct btrfs_fs_info *fs_info = trans->fs_info;
859 ret = btrfs_search_slot(trans, quota_root, &key, path, 0, 1);
870 btrfs_set_qgroup_status_generation(l, ptr, trans->transid);
884 static int btrfs_clean_quota_tree(struct btrfs_trans_handle *trans,
904 ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
917 ret = btrfs_del_items(trans, root, path, 0, nr);
939 struct btrfs_trans_handle *trans = NULL;
989 trans = btrfs_start_transaction(tree_root, 2);
992 if (IS_ERR(trans)) {
993 ret = PTR_ERR(trans);
994 trans = NULL;
1007 quota_root = btrfs_create_tree(trans, BTRFS_QUOTA_TREE_OBJECTID);
1010 btrfs_abort_transaction(trans, ret);
1017 btrfs_abort_transaction(trans, ret);
1025 ret = btrfs_insert_empty_item(trans, quota_root, path, &key,
1028 btrfs_abort_transaction(trans, ret);
1035 btrfs_set_qgroup_status_generation(leaf, ptr, trans->transid);
1053 btrfs_abort_transaction(trans, ret);
1067 ret = add_qgroup_item(trans, quota_root,
1070 btrfs_abort_transaction(trans, ret);
1077 btrfs_abort_transaction(trans, ret);
1082 btrfs_abort_transaction(trans, ret);
1088 btrfs_abort_transaction(trans, ret);
1102 btrfs_abort_transaction(trans, ret);
1111 ret = add_qgroup_item(trans, quota_root, BTRFS_FS_TREE_OBJECTID);
1113 btrfs_abort_transaction(trans, ret);
1120 btrfs_abort_transaction(trans, ret);
1125 btrfs_abort_transaction(trans, ret);
1139 ret = btrfs_commit_transaction(trans);
1140 trans = NULL;
1190 if (ret && trans)
1191 btrfs_end_transaction(trans);
1192 else if (trans)
1193 ret = btrfs_end_transaction(trans);
1201 struct btrfs_trans_handle *trans = NULL;
1251 trans = btrfs_start_transaction(fs_info->tree_root, 1);
1254 if (IS_ERR(trans)) {
1255 ret = PTR_ERR(trans);
1256 trans = NULL;
1272 ret = btrfs_clean_quota_tree(trans, quota_root);
1274 btrfs_abort_transaction(trans, ret);
1278 ret = btrfs_del_root(trans, "a_root->root_key);
1280 btrfs_abort_transaction(trans, ret);
1291 btrfs_free_tree_block(trans, quota_root, quota_root->node, 0, 1);
1297 if (ret && trans)
1298 btrfs_end_transaction(trans);
1299 else if (trans)
1300 ret = btrfs_end_transaction(trans);
1430 int btrfs_add_qgroup_relation(struct btrfs_trans_handle *trans, u64 src,
1433 struct btrfs_fs_info *fs_info = trans->fs_info;
1472 ret = add_qgroup_relation_item(trans, src, dst);
1476 ret = add_qgroup_relation_item(trans, dst, src);
1478 del_qgroup_relation_item(trans, src, dst);
1496 static int __del_qgroup_relation(struct btrfs_trans_handle *trans, u64 src,
1499 struct btrfs_fs_info *fs_info = trans->fs_info;
1539 ret = del_qgroup_relation_item(trans, src, dst);
1542 ret2 = del_qgroup_relation_item(trans, dst, src);
1561 int btrfs_del_qgroup_relation(struct btrfs_trans_handle *trans, u64 src,
1564 struct btrfs_fs_info *fs_info = trans->fs_info;
1568 ret = __del_qgroup_relation(trans, src, dst);
1574 int btrfs_create_qgroup(struct btrfs_trans_handle *trans, u64 qgroupid)
1576 struct btrfs_fs_info *fs_info = trans->fs_info;
1593 ret = add_qgroup_item(trans, quota_root, qgroupid);
1620 int btrfs_remove_qgroup(struct btrfs_trans_handle *trans, u64 qgroupid)
1622 struct btrfs_fs_info *fs_info = trans->fs_info;
1650 ret = del_qgroup_item(trans, qgroupid);
1657 ret = __del_qgroup_relation(trans, qgroupid,
1679 int btrfs_limit_qgroup(struct btrfs_trans_handle *trans, u64 qgroupid,
1682 struct btrfs_fs_info *fs_info = trans->fs_info;
1744 ret = update_qgroup_limit_item(trans, qgroup);
1809 * trans->transaction->delayed_refs, since inserted qrecord won't
1818 int btrfs_qgroup_trace_extent(struct btrfs_trans_handle *trans, u64 bytenr,
1821 struct btrfs_fs_info *fs_info = trans->fs_info;
1833 delayed_refs = &trans->transaction->delayed_refs;
1848 int btrfs_qgroup_trace_leaf_items(struct btrfs_trans_handle *trans,
1851 struct btrfs_fs_info *fs_info = trans->fs_info;
1881 ret = btrfs_qgroup_trace_extent(trans, bytenr, num_bytes,
1997 static int qgroup_trace_extent_swap(struct btrfs_trans_handle* trans,
2005 struct btrfs_fs_info *fs_info = trans->fs_info;
2092 ret = btrfs_qgroup_trace_extent(trans, src_path->nodes[dst_level]->start,
2096 ret = btrfs_qgroup_trace_extent(trans,
2104 ret = btrfs_qgroup_trace_leaf_items(trans, src_path->nodes[0]);
2107 ret = btrfs_qgroup_trace_leaf_items(trans, dst_path->nodes[0]);
2136 static int qgroup_trace_new_subtree_blocks(struct btrfs_trans_handle* trans,
2142 struct btrfs_fs_info *fs_info = trans->fs_info;
2211 ret = qgroup_trace_extent_swap(trans, src_eb, dst_path, cur_level,
2227 ret = qgroup_trace_new_subtree_blocks(trans, src_eb,
2249 static int qgroup_trace_subtree_swap(struct btrfs_trans_handle *trans,
2254 struct btrfs_fs_info *fs_info = trans->fs_info;
2289 ret = qgroup_trace_new_subtree_blocks(trans, src_eb, dst_path, level,
2302 int btrfs_qgroup_trace_subtree(struct btrfs_trans_handle *trans,
2306 struct btrfs_fs_info *fs_info = trans->fs_info;
2325 ret = btrfs_qgroup_trace_leaf_items(trans, root_eb);
2383 ret = btrfs_qgroup_trace_extent(trans, child_bytenr,
2391 ret = btrfs_qgroup_trace_leaf_items(trans,
2627 int btrfs_qgroup_account_extent(struct btrfs_trans_handle *trans, u64 bytenr,
2631 struct btrfs_fs_info *fs_info = trans->fs_info;
2663 trace_btrfs_qgroup_account_extent(fs_info, trans->transid, bytenr,
2719 int btrfs_qgroup_account_extents(struct btrfs_trans_handle *trans)
2721 struct btrfs_fs_info *fs_info = trans->fs_info;
2730 delayed_refs = &trans->transaction->delayed_refs;
2763 ret = btrfs_find_all_roots(trans, fs_info,
2772 ret = btrfs_qgroup_account_extent(trans, record->bytenr,
2787 trace_qgroup_num_dirty_extents(fs_info, trans->transid,
2796 int btrfs_run_qgroups(struct btrfs_trans_handle *trans)
2798 struct btrfs_fs_info *fs_info = trans->fs_info;
2806 if (trans->transaction->state != TRANS_STATE_COMMIT_DOING)
2819 ret = update_qgroup_info_item(trans, qgroup);
2823 ret = update_qgroup_limit_item(trans, qgroup);
2835 ret = update_qgroup_status_item(trans);
2848 int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans, u64 srcid,
2855 struct btrfs_fs_info *fs_info = trans->fs_info;
2870 * code can modify the fs as they all need to either start a new trans
2871 * or hold a trans handler, thus we don't need to hold
2876 if (trans->transaction->state == TRANS_STATE_COMMIT_DOING)
2913 ret = add_qgroup_item(trans, quota_root, objectid);
2925 ret = add_qgroup_relation_item(trans, objectid,
2929 ret = add_qgroup_relation_item(trans, *i_qgroups,
3236 static int qgroup_rescan_leaf(struct btrfs_trans_handle *trans,
3239 struct btrfs_fs_info *fs_info = trans->fs_info;
3304 ret = btrfs_qgroup_account_extent(trans, found.objectid,
3332 struct btrfs_trans_handle *trans = NULL;
3350 trans = btrfs_start_transaction(fs_info->fs_root, 0);
3351 if (IS_ERR(trans)) {
3352 err = PTR_ERR(trans);
3356 err = qgroup_rescan_leaf(trans, path);
3360 btrfs_commit_transaction(trans);
3362 btrfs_end_transaction(trans);
3385 trans = btrfs_start_transaction(fs_info->quota_root, 1);
3386 if (IS_ERR(trans)) {
3387 err = PTR_ERR(trans);
3388 trans = NULL;
3394 trans = NULL;
3400 if (trans) {
3401 ret = update_qgroup_status_item(trans);
3412 if (!trans)
3415 btrfs_end_transaction(trans);
3513 struct btrfs_trans_handle *trans;
3530 trans = btrfs_join_transaction(fs_info->fs_root);
3531 if (IS_ERR(trans)) {
3533 return PTR_ERR(trans);
3535 ret = btrfs_commit_transaction(trans);
3674 struct btrfs_trans_handle *trans;
3717 trans = btrfs_join_transaction(root);
3718 if (IS_ERR(trans)) {
3719 ret = PTR_ERR(trans);
3724 ret = btrfs_commit_transaction(trans);
3726 ret = btrfs_end_transaction(trans);
4202 int btrfs_qgroup_add_swapped_blocks(struct btrfs_trans_handle *trans,
4312 int btrfs_qgroup_trace_subtree_after_cow(struct btrfs_trans_handle *trans,
4379 ret = qgroup_trace_subtree_swap(trans, reloc_eb, subvol_eb,
4394 void btrfs_qgroup_destroy_extent_records(struct btrfs_transaction *trans)
4400 root = &trans->delayed_refs.dirty_extent_root;