1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _BCACHEFS_QUOTA_TYPES_H
3#define _BCACHEFS_QUOTA_TYPES_H
4
5#include <linux/generic-radix-tree.h>
6
7struct bch_qid {
8 u32 q[QTYP_NR];
9};
10
11enum quota_acct_mode {
12 KEY_TYPE_QUOTA_PREALLOC,
13 KEY_TYPE_QUOTA_WARN,
14 KEY_TYPE_QUOTA_NOCHECK,
15};
16
17struct memquota_counter {
18 u64 v;
19 u64 hardlimit;
20 u64 softlimit;
21 s64 timer;
22 int warns;
23 int warning_issued;
24};
25
26struct bch_memquota {
27 struct memquota_counter c[Q_COUNTERS];
28};
29
30typedef GENRADIX(struct bch_memquota) bch_memquota_table;
31
32struct quota_limit {
33 u32 timelimit;
34 u32 warnlimit;
35};
36
37struct bch_memquota_type {
38 struct quota_limit limits[Q_COUNTERS];
39 bch_memquota_table table;
40 struct mutex lock;
41};
42
43#endif /* _BCACHEFS_QUOTA_TYPES_H */
44

source code of linux/fs/bcachefs/quota_types.h