Lines Matching refs:trans

477 static int add_qgroup_relation_item(struct btrfs_trans_handle *trans,  in add_qgroup_relation_item()  argument
493 ret = btrfs_insert_empty_item(trans, quota_root, path, &key, 0); in add_qgroup_relation_item()
501 static int del_qgroup_relation_item(struct btrfs_trans_handle *trans, in del_qgroup_relation_item() argument
517 ret = btrfs_search_slot(trans, quota_root, &key, path, -1, 1); in del_qgroup_relation_item()
526 ret = btrfs_del_item(trans, quota_root, path); in del_qgroup_relation_item()
532 static int add_qgroup_item(struct btrfs_trans_handle *trans, in add_qgroup_item() argument
559 ret = btrfs_insert_empty_item(trans, quota_root, path, &key, in add_qgroup_item()
567 btrfs_set_qgroup_info_generation(leaf, qgroup_info, trans->transid); in add_qgroup_item()
578 ret = btrfs_insert_empty_item(trans, quota_root, path, &key, in add_qgroup_item()
600 static int del_qgroup_item(struct btrfs_trans_handle *trans, in del_qgroup_item() argument
614 ret = btrfs_search_slot(trans, quota_root, &key, path, -1, 1); in del_qgroup_item()
623 ret = btrfs_del_item(trans, quota_root, path); in del_qgroup_item()
630 ret = btrfs_search_slot(trans, quota_root, &key, path, -1, 1); in del_qgroup_item()
639 ret = btrfs_del_item(trans, quota_root, path); in del_qgroup_item()
646 static int update_qgroup_limit_item(struct btrfs_trans_handle *trans, in update_qgroup_limit_item() argument
665 ret = btrfs_search_slot(trans, root, &key, path, 0, 1); in update_qgroup_limit_item()
688 static int update_qgroup_info_item(struct btrfs_trans_handle *trans, in update_qgroup_info_item() argument
710 ret = btrfs_search_slot(trans, root, &key, path, 0, 1); in update_qgroup_info_item()
720 btrfs_set_qgroup_info_generation(l, qgroup_info, trans->transid); in update_qgroup_info_item()
733 static int update_qgroup_status_item(struct btrfs_trans_handle *trans, in update_qgroup_status_item() argument
752 ret = btrfs_search_slot(trans, root, &key, path, 0, 1); in update_qgroup_status_item()
763 btrfs_set_qgroup_status_generation(l, ptr, trans->transid); in update_qgroup_status_item()
777 static int btrfs_clean_quota_tree(struct btrfs_trans_handle *trans, in btrfs_clean_quota_tree() argument
797 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in btrfs_clean_quota_tree()
810 ret = btrfs_del_items(trans, root, path, 0, nr); in btrfs_clean_quota_tree()
823 int btrfs_quota_enable(struct btrfs_trans_handle *trans, in btrfs_quota_enable() argument
852 quota_root = btrfs_create_tree(trans, fs_info, in btrfs_quota_enable()
869 ret = btrfs_insert_empty_item(trans, quota_root, path, &key, in btrfs_quota_enable()
877 btrfs_set_qgroup_status_generation(leaf, ptr, trans->transid); in btrfs_quota_enable()
904 ret = add_qgroup_item(trans, quota_root, in btrfs_quota_enable()
924 ret = add_qgroup_item(trans, quota_root, BTRFS_FS_TREE_OBJECTID); in btrfs_quota_enable()
954 int btrfs_quota_disable(struct btrfs_trans_handle *trans, in btrfs_quota_disable() argument
974 ret = btrfs_clean_quota_tree(trans, quota_root); in btrfs_quota_disable()
978 ret = btrfs_del_root(trans, tree_root, &quota_root->root_key); in btrfs_quota_disable()
985 clean_tree_block(trans, tree_root->fs_info, quota_root->node); in btrfs_quota_disable()
987 btrfs_free_tree_block(trans, quota_root, quota_root->node, 0, 1); in btrfs_quota_disable()
1108 int btrfs_add_qgroup_relation(struct btrfs_trans_handle *trans, in btrfs_add_qgroup_relation() argument
1147 ret = add_qgroup_relation_item(trans, quota_root, src, dst); in btrfs_add_qgroup_relation()
1151 ret = add_qgroup_relation_item(trans, quota_root, dst, src); in btrfs_add_qgroup_relation()
1153 del_qgroup_relation_item(trans, quota_root, src, dst); in btrfs_add_qgroup_relation()
1171 int __del_qgroup_relation(struct btrfs_trans_handle *trans, in __del_qgroup_relation() argument
1207 ret = del_qgroup_relation_item(trans, quota_root, src, dst); in __del_qgroup_relation()
1208 err = del_qgroup_relation_item(trans, quota_root, dst, src); in __del_qgroup_relation()
1221 int btrfs_del_qgroup_relation(struct btrfs_trans_handle *trans, in btrfs_del_qgroup_relation() argument
1227 ret = __del_qgroup_relation(trans, fs_info, src, dst); in btrfs_del_qgroup_relation()
1233 int btrfs_create_qgroup(struct btrfs_trans_handle *trans, in btrfs_create_qgroup() argument
1252 ret = add_qgroup_item(trans, quota_root, qgroupid); in btrfs_create_qgroup()
1267 int btrfs_remove_qgroup(struct btrfs_trans_handle *trans, in btrfs_remove_qgroup() argument
1293 ret = del_qgroup_item(trans, quota_root, qgroupid); in btrfs_remove_qgroup()
1298 ret = __del_qgroup_relation(trans, fs_info, in btrfs_remove_qgroup()
1313 int btrfs_limit_qgroup(struct btrfs_trans_handle *trans, in btrfs_limit_qgroup() argument
1347 ret = update_qgroup_limit_item(trans, quota_root, qgroup); in btrfs_limit_qgroup()
1469 int btrfs_qgroup_record_ref(struct btrfs_trans_handle *trans, in btrfs_qgroup_record_ref() argument
1517 list_add_tail(&oper->list, &trans->qgroup_ref_list); in btrfs_qgroup_record_ref()
1877 static int check_existing_refs(struct btrfs_trans_handle *trans, in check_existing_refs() argument
1886 ret = btrfs_find_all_roots(trans, fs_info, oper->bytenr, in check_existing_refs()
1945 static int qgroup_shared_accounting(struct btrfs_trans_handle *trans, in qgroup_shared_accounting() argument
1959 ret = check_existing_refs(trans, fs_info, oper); in qgroup_shared_accounting()
1977 ret = btrfs_find_all_roots(trans, fs_info, oper->bytenr, elem.seq, in qgroup_shared_accounting()
2061 static int qgroup_subtree_accounting(struct btrfs_trans_handle *trans, in qgroup_subtree_accounting() argument
2081 ret = btrfs_find_all_roots(trans, fs_info, oper->bytenr, in qgroup_subtree_accounting()
2167 static int btrfs_qgroup_account(struct btrfs_trans_handle *trans, in btrfs_qgroup_account() argument
2198 ret = qgroup_shared_accounting(trans, fs_info, oper); in btrfs_qgroup_account()
2201 ret = qgroup_subtree_accounting(trans, fs_info, oper); in btrfs_qgroup_account()
2213 int btrfs_delayed_qgroup_accounting(struct btrfs_trans_handle *trans, in btrfs_delayed_qgroup_accounting() argument
2219 while (!list_empty(&trans->qgroup_ref_list)) { in btrfs_delayed_qgroup_accounting()
2220 oper = list_first_entry(&trans->qgroup_ref_list, in btrfs_delayed_qgroup_accounting()
2223 if (!ret || !trans->aborted) in btrfs_delayed_qgroup_accounting()
2224 ret = btrfs_qgroup_account(trans, fs_info, oper); in btrfs_delayed_qgroup_accounting()
2237 int btrfs_run_qgroups(struct btrfs_trans_handle *trans, in btrfs_run_qgroups() argument
2259 ret = update_qgroup_info_item(trans, quota_root, qgroup); in btrfs_run_qgroups()
2263 ret = update_qgroup_limit_item(trans, quota_root, qgroup); in btrfs_run_qgroups()
2275 ret = update_qgroup_status_item(trans, fs_info, quota_root); in btrfs_run_qgroups()
2298 int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans, in btrfs_qgroup_inherit() argument
2342 ret = add_qgroup_item(trans, quota_root, objectid); in btrfs_qgroup_inherit()
2370 ret = add_qgroup_relation_item(trans, quota_root, in btrfs_qgroup_inherit()
2374 ret = add_qgroup_relation_item(trans, quota_root, in btrfs_qgroup_inherit()
2398 ret = update_qgroup_limit_item(trans, quota_root, dstgroup); in btrfs_qgroup_inherit()
2621 void assert_qgroups_uptodate(struct btrfs_trans_handle *trans) in assert_qgroups_uptodate() argument
2623 if (list_empty(&trans->qgroup_ref_list) && !trans->delayed_ref_elem.seq) in assert_qgroups_uptodate()
2625 btrfs_err(trans->root->fs_info, in assert_qgroups_uptodate()
2628 trans, list_empty(&trans->qgroup_ref_list) ? "" : " not", in assert_qgroups_uptodate()
2629 (u32)(trans->delayed_ref_elem.seq >> 32), in assert_qgroups_uptodate()
2630 (u32)trans->delayed_ref_elem.seq); in assert_qgroups_uptodate()
2640 struct btrfs_trans_handle *trans, struct ulist *qgroups, in qgroup_rescan_leaf() argument
2737 struct btrfs_trans_handle *trans = NULL; in btrfs_qgroup_rescan_worker() local
2758 trans = btrfs_start_transaction(fs_info->fs_root, 0); in btrfs_qgroup_rescan_worker()
2759 if (IS_ERR(trans)) { in btrfs_qgroup_rescan_worker()
2760 err = PTR_ERR(trans); in btrfs_qgroup_rescan_worker()
2766 err = qgroup_rescan_leaf(fs_info, path, trans, in btrfs_qgroup_rescan_worker()
2770 btrfs_commit_transaction(trans, fs_info->fs_root); in btrfs_qgroup_rescan_worker()
2772 btrfs_end_transaction(trans, fs_info->fs_root); in btrfs_qgroup_rescan_worker()
2796 trans = btrfs_start_transaction(fs_info->quota_root, 1); in btrfs_qgroup_rescan_worker()
2797 if (IS_ERR(trans)) { in btrfs_qgroup_rescan_worker()
2798 err = PTR_ERR(trans); in btrfs_qgroup_rescan_worker()
2804 ret = update_qgroup_status_item(trans, fs_info, fs_info->quota_root); in btrfs_qgroup_rescan_worker()
2809 btrfs_end_transaction(trans, fs_info->quota_root); in btrfs_qgroup_rescan_worker()
2902 struct btrfs_trans_handle *trans; in btrfs_qgroup_rescan() local
2919 trans = btrfs_join_transaction(fs_info->fs_root); in btrfs_qgroup_rescan()
2920 if (IS_ERR(trans)) { in btrfs_qgroup_rescan()
2922 return PTR_ERR(trans); in btrfs_qgroup_rescan()
2924 ret = btrfs_commit_transaction(trans, fs_info->fs_root); in btrfs_qgroup_rescan()