| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _BCACHEFS_QUOTA_FORMAT_H |
| #define _BCACHEFS_QUOTA_FORMAT_H |
| |
| /* KEY_TYPE_quota: */ |
| |
| enum quota_types { |
| QTYP_USR = 0, |
| QTYP_GRP = 1, |
| QTYP_PRJ = 2, |
| QTYP_NR = 3, |
| }; |
| |
| enum quota_counters { |
| Q_SPC = 0, |
| Q_INO = 1, |
| Q_COUNTERS = 2, |
| }; |
| |
| struct bch_quota_counter { |
| __le64 hardlimit; |
| __le64 softlimit; |
| }; |
| |
| struct bch_quota { |
| struct bch_val v; |
| struct bch_quota_counter c[Q_COUNTERS]; |
| } __packed __aligned(8); |
| |
| /* BCH_SB_FIELD_quota: */ |
| |
| struct bch_sb_quota_counter { |
| __le32 timelimit; |
| __le32 warnlimit; |
| }; |
| |
| struct bch_sb_quota_type { |
| __le64 flags; |
| struct bch_sb_quota_counter c[Q_COUNTERS]; |
| }; |
| |
| struct bch_sb_field_quota { |
| struct bch_sb_field field; |
| struct bch_sb_quota_type q[QTYP_NR]; |
| } __packed __aligned(8); |
| |
| #endif /* _BCACHEFS_QUOTA_FORMAT_H */ |