1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _BCACHEFS_QUOTA_FORMAT_H |
3 | #define _BCACHEFS_QUOTA_FORMAT_H |
4 | |
5 | /* KEY_TYPE_quota: */ |
6 | |
7 | enum quota_types { |
8 | QTYP_USR = 0, |
9 | QTYP_GRP = 1, |
10 | QTYP_PRJ = 2, |
11 | QTYP_NR = 3, |
12 | }; |
13 | |
14 | enum quota_counters { |
15 | Q_SPC = 0, |
16 | Q_INO = 1, |
17 | Q_COUNTERS = 2, |
18 | }; |
19 | |
20 | struct bch_quota_counter { |
21 | __le64 hardlimit; |
22 | __le64 softlimit; |
23 | }; |
24 | |
25 | struct bch_quota { |
26 | struct bch_val v; |
27 | struct bch_quota_counter c[Q_COUNTERS]; |
28 | } __packed __aligned(8); |
29 | |
30 | /* BCH_SB_FIELD_quota: */ |
31 | |
32 | struct bch_sb_quota_counter { |
33 | __le32 timelimit; |
34 | __le32 warnlimit; |
35 | }; |
36 | |
37 | struct bch_sb_quota_type { |
38 | __le64 flags; |
39 | struct bch_sb_quota_counter c[Q_COUNTERS]; |
40 | }; |
41 | |
42 | struct bch_sb_field_quota { |
43 | struct bch_sb_field field; |
44 | struct bch_sb_quota_type q[QTYP_NR]; |
45 | } __packed __aligned(8); |
46 | |
47 | #endif /* _BCACHEFS_QUOTA_FORMAT_H */ |
48 | |