Lines Matching defs:qg

109 static void btrfs_qgroup_update_old_refcnt(struct btrfs_qgroup *qg, u64 seq,
112 if (qg->old_refcnt < seq)
113 qg->old_refcnt = seq;
114 qg->old_refcnt += mod;
117 static void btrfs_qgroup_update_new_refcnt(struct btrfs_qgroup *qg, u64 seq,
120 if (qg->new_refcnt < seq)
121 qg->new_refcnt = seq;
122 qg->new_refcnt += mod;
125 static inline u64 btrfs_qgroup_get_old_refcnt(struct btrfs_qgroup *qg, u64 seq)
127 if (qg->old_refcnt < seq)
129 return qg->old_refcnt - seq;
132 static inline u64 btrfs_qgroup_get_new_refcnt(struct btrfs_qgroup *qg, u64 seq)
134 if (qg->new_refcnt < seq)
136 return qg->new_refcnt - seq;
149 static inline u64 qgroup_to_aux(struct btrfs_qgroup *qg)
151 return (u64)(uintptr_t)qg;
2494 struct btrfs_qgroup *qg;
2501 qg = find_qgroup_rb(fs_info, unode->val);
2502 if (!qg)
2506 ret = ulist_add(qgroups, qg->qgroupid, qgroup_to_aux(qg),
2510 ret = ulist_add(tmp, qg->qgroupid, qgroup_to_aux(qg), GFP_ATOMIC);
2517 qg = unode_aux_to_qgroup(tmp_unode);
2519 btrfs_qgroup_update_old_refcnt(qg, seq, 1);
2521 btrfs_qgroup_update_new_refcnt(qg, seq, 1);
2522 list_for_each_entry(glist, &qg->groups, next_group) {
2583 struct btrfs_qgroup *qg;
2590 qg = unode_aux_to_qgroup(unode);
2591 cur_old_count = btrfs_qgroup_get_old_refcnt(qg, seq);
2592 cur_new_count = btrfs_qgroup_get_new_refcnt(qg, seq);
2594 trace_qgroup_update_counters(fs_info, qg, cur_old_count,
2599 qg->rfer += num_bytes;
2600 qg->rfer_cmpr += num_bytes;
2604 qg->rfer -= num_bytes;
2605 qg->rfer_cmpr -= num_bytes;
2615 qg->excl -= num_bytes;
2616 qg->excl_cmpr -= num_bytes;
2626 qg->excl += num_bytes;
2627 qg->excl_cmpr += num_bytes;
2640 qg->excl += num_bytes;
2641 qg->excl_cmpr += num_bytes;
2650 qg->excl -= num_bytes;
2651 qg->excl_cmpr -= num_bytes;
2659 qgroup_dirty(fs_info, qg);
3141 static bool qgroup_check_limits(const struct btrfs_qgroup *qg, u64 num_bytes)
3143 if ((qg->lim_flags & BTRFS_QGROUP_LIMIT_MAX_RFER) &&
3144 qgroup_rsv_total(qg) + (s64)qg->rfer + num_bytes > qg->max_rfer)
3147 if ((qg->lim_flags & BTRFS_QGROUP_LIMIT_MAX_EXCL) &&
3148 qgroup_rsv_total(qg) + (s64)qg->excl + num_bytes > qg->max_excl)
3258 struct btrfs_qgroup *qg;
3261 qg = unode_aux_to_qgroup(unode);
3263 qgroup_rsv_release(fs_info, qg, num_bytes, type);
3265 list_for_each_entry(glist, &qg->groups, next_group) {