Lines Matching refs:oper

1378 			      struct btrfs_qgroup_operation *oper)  in qgroup_oper_exists()  argument
1388 cmp = comp_oper_exist(cur, oper); in qgroup_oper_exists()
1425 struct btrfs_qgroup_operation *oper) in insert_qgroup_oper() argument
1437 cmp = comp_oper(cur, oper); in insert_qgroup_oper()
1447 rb_link_node(&oper->n, parent, p); in insert_qgroup_oper()
1448 rb_insert_color(&oper->n, &fs_info->qgroup_op_tree); in insert_qgroup_oper()
1474 struct btrfs_qgroup_operation *oper; in btrfs_qgroup_record_ref() local
1480 oper = kmalloc(sizeof(*oper), GFP_NOFS); in btrfs_qgroup_record_ref()
1481 if (!oper) in btrfs_qgroup_record_ref()
1484 oper->ref_root = ref_root; in btrfs_qgroup_record_ref()
1485 oper->bytenr = bytenr; in btrfs_qgroup_record_ref()
1486 oper->num_bytes = num_bytes; in btrfs_qgroup_record_ref()
1487 oper->type = type; in btrfs_qgroup_record_ref()
1488 oper->seq = atomic_inc_return(&fs_info->qgroup_op_seq); in btrfs_qgroup_record_ref()
1489 INIT_LIST_HEAD(&oper->elem.list); in btrfs_qgroup_record_ref()
1490 oper->elem.seq = 0; in btrfs_qgroup_record_ref()
1492 trace_btrfs_qgroup_record_ref(oper); in btrfs_qgroup_record_ref()
1504 if (qgroup_oper_exists(fs_info, oper)) { in btrfs_qgroup_record_ref()
1505 kfree(oper); in btrfs_qgroup_record_ref()
1510 ret = insert_qgroup_oper(fs_info, oper); in btrfs_qgroup_record_ref()
1514 kfree(oper); in btrfs_qgroup_record_ref()
1517 list_add_tail(&oper->list, &trans->qgroup_ref_list); in btrfs_qgroup_record_ref()
1520 btrfs_get_tree_mod_seq(fs_info, &oper->elem); in btrfs_qgroup_record_ref()
1526 struct btrfs_qgroup_operation *oper) in qgroup_excl_accounting() argument
1540 switch (oper->type) { in qgroup_excl_accounting()
1550 ret = __qgroup_excl_accounting(fs_info, tmp, oper->ref_root, in qgroup_excl_accounting()
1551 oper->num_bytes, sign); in qgroup_excl_accounting()
1651 struct btrfs_qgroup_operation *oper, in qgroup_account_deleted_refs() argument
1670 n = rb_next(&oper->n); in qgroup_account_deleted_refs()
1675 while (tmp_oper->bytenr == oper->bytenr) { in qgroup_account_deleted_refs()
1746 struct btrfs_qgroup_operation *oper, in qgroup_calc_new_refcnt() argument
1770 if (oper->type == BTRFS_QGROUP_OPER_ADD_SHARED) { in qgroup_calc_new_refcnt()
1879 struct btrfs_qgroup_operation *oper) in check_existing_refs() argument
1886 ret = btrfs_find_all_roots(trans, fs_info, oper->bytenr, in check_existing_refs()
1887 oper->elem.seq, &roots); in check_existing_refs()
1894 if (unode->val == oper->ref_root) { in check_existing_refs()
1900 btrfs_put_tree_mod_seq(fs_info, &oper->elem); in check_existing_refs()
1947 struct btrfs_qgroup_operation *oper) in qgroup_shared_accounting() argument
1958 if (oper->elem.seq) { in qgroup_shared_accounting()
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()
1986 qgroup = find_qgroup_rb(fs_info, oper->ref_root); in qgroup_shared_accounting()
1999 ret = qgroup_calc_old_refcnt(fs_info, oper->ref_root, tmp, roots, qgroups, in qgroup_shared_accounting()
2009 ret = qgroup_calc_new_refcnt(fs_info, oper, qgroup, tmp, qgroups, in qgroup_shared_accounting()
2024 ret = qgroup_account_deleted_refs(fs_info, oper, tmp, qgroups, seq, in qgroup_shared_accounting()
2033 if (oper->type == BTRFS_QGROUP_OPER_ADD_SHARED) { in qgroup_shared_accounting()
2046 qgroup_adjust_counters(fs_info, oper->ref_root, oper->num_bytes, in qgroup_shared_accounting()
2063 struct btrfs_qgroup_operation *oper) in qgroup_subtree_accounting() argument
2081 ret = btrfs_find_all_roots(trans, fs_info, oper->bytenr, in qgroup_subtree_accounting()
2105 if (unode->val == oper->ref_root) in qgroup_subtree_accounting()
2116 qg->excl += oper->num_bytes; in qgroup_subtree_accounting()
2117 qg->excl_cmpr += oper->num_bytes; in qgroup_subtree_accounting()
2137 qg->excl += oper->num_bytes; in qgroup_subtree_accounting()
2138 qg->excl_cmpr += oper->num_bytes; in qgroup_subtree_accounting()
2169 struct btrfs_qgroup_operation *oper) in btrfs_qgroup_account() argument
2180 if (fs_info->qgroup_rescan_progress.objectid <= oper->bytenr) { in btrfs_qgroup_account()
2187 ASSERT(is_fstree(oper->ref_root)); in btrfs_qgroup_account()
2189 trace_btrfs_qgroup_account(oper); in btrfs_qgroup_account()
2191 switch (oper->type) { in btrfs_qgroup_account()
2194 ret = qgroup_excl_accounting(fs_info, oper); in btrfs_qgroup_account()
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()
2216 struct btrfs_qgroup_operation *oper; in btrfs_delayed_qgroup_accounting() local
2220 oper = list_first_entry(&trans->qgroup_ref_list, in btrfs_delayed_qgroup_accounting()
2222 list_del_init(&oper->list); in btrfs_delayed_qgroup_accounting()
2224 ret = btrfs_qgroup_account(trans, fs_info, oper); in btrfs_delayed_qgroup_accounting()
2226 rb_erase(&oper->n, &fs_info->qgroup_op_tree); in btrfs_delayed_qgroup_accounting()
2228 btrfs_put_tree_mod_seq(fs_info, &oper->elem); in btrfs_delayed_qgroup_accounting()
2229 kfree(oper); in btrfs_delayed_qgroup_accounting()