Lines Matching defs:qg

115 static void btrfs_qgroup_update_old_refcnt(struct btrfs_qgroup *qg, u64 seq,
118 if (qg->old_refcnt < seq)
119 qg->old_refcnt = seq;
120 qg->old_refcnt += mod;
123 static void btrfs_qgroup_update_new_refcnt(struct btrfs_qgroup *qg, u64 seq,
126 if (qg->new_refcnt < seq)
127 qg->new_refcnt = seq;
128 qg->new_refcnt += mod;
131 static inline u64 btrfs_qgroup_get_old_refcnt(struct btrfs_qgroup *qg, u64 seq)
133 if (qg->old_refcnt < seq)
135 return qg->old_refcnt - seq;
138 static inline u64 btrfs_qgroup_get_new_refcnt(struct btrfs_qgroup *qg, u64 seq)
140 if (qg->new_refcnt < seq)
142 return qg->new_refcnt - seq;
155 static inline u64 qgroup_to_aux(struct btrfs_qgroup *qg)
157 return (u64)(uintptr_t)qg;
2428 struct btrfs_qgroup *qg;
2435 qg = find_qgroup_rb(fs_info, unode->val);
2436 if (!qg)
2440 ret = ulist_add(qgroups, qg->qgroupid, qgroup_to_aux(qg),
2444 ret = ulist_add(tmp, qg->qgroupid, qgroup_to_aux(qg), GFP_ATOMIC);
2451 qg = unode_aux_to_qgroup(tmp_unode);
2453 btrfs_qgroup_update_old_refcnt(qg, seq, 1);
2455 btrfs_qgroup_update_new_refcnt(qg, seq, 1);
2456 list_for_each_entry(glist, &qg->groups, next_group) {
2517 struct btrfs_qgroup *qg;
2524 qg = unode_aux_to_qgroup(unode);
2525 cur_old_count = btrfs_qgroup_get_old_refcnt(qg, seq);
2526 cur_new_count = btrfs_qgroup_get_new_refcnt(qg, seq);
2528 trace_qgroup_update_counters(fs_info, qg, cur_old_count,
2533 qg->rfer += num_bytes;
2534 qg->rfer_cmpr += num_bytes;
2538 qg->rfer -= num_bytes;
2539 qg->rfer_cmpr -= num_bytes;
2549 qg->excl -= num_bytes;
2550 qg->excl_cmpr -= num_bytes;
2560 qg->excl += num_bytes;
2561 qg->excl_cmpr += num_bytes;
2574 qg->excl += num_bytes;
2575 qg->excl_cmpr += num_bytes;
2584 qg->excl -= num_bytes;
2585 qg->excl_cmpr -= num_bytes;
2593 qgroup_dirty(fs_info, qg);
3058 static bool qgroup_check_limits(const struct btrfs_qgroup *qg, u64 num_bytes)
3060 if ((qg->lim_flags & BTRFS_QGROUP_LIMIT_MAX_RFER) &&
3061 qgroup_rsv_total(qg) + (s64)qg->rfer + num_bytes > qg->max_rfer)
3064 if ((qg->lim_flags & BTRFS_QGROUP_LIMIT_MAX_EXCL) &&
3065 qgroup_rsv_total(qg) + (s64)qg->excl + num_bytes > qg->max_excl)
3110 struct btrfs_qgroup *qg;
3113 qg = unode_aux_to_qgroup(unode);
3115 if (enforce && !qgroup_check_limits(qg, num_bytes)) {
3120 list_for_each_entry(glist, &qg->groups, next_group) {
3134 struct btrfs_qgroup *qg;
3136 qg = unode_aux_to_qgroup(unode);
3138 qgroup_rsv_add(fs_info, qg, num_bytes, type);
3197 struct btrfs_qgroup *qg;
3200 qg = unode_aux_to_qgroup(unode);
3202 qgroup_rsv_release(fs_info, qg, num_bytes, type);
3204 list_for_each_entry(glist, &qg->groups, next_group) {
4084 struct btrfs_qgroup *qg;
4087 qg = unode_aux_to_qgroup(unode);
4089 qgroup_rsv_release(fs_info, qg, num_bytes,
4091 qgroup_rsv_add(fs_info, qg, num_bytes,
4093 list_for_each_entry(glist, &qg->groups, next_group) {