/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _BCACHEFS_QUOTA_TYPES_H #define _BCACHEFS_QUOTA_TYPES_H #include <linux/generic-radix-tree.h> struct bch_qid { u32 q[QTYP_NR]; }; enum quota_acct_mode { KEY_TYPE_QUOTA_PREALLOC, KEY_TYPE_QUOTA_WARN, KEY_TYPE_QUOTA_NOCHECK, }; struct memquota_counter { u64 v; u64 hardlimit; u64 softlimit; s64 timer; int warns; int warning_issued; }; struct bch_memquota { struct memquota_counter c[Q_COUNTERS]; }; typedef GENRADIX(struct bch_memquota) bch_memquota_table; struct quota_limit { u32 timelimit; u32 warnlimit; }; struct bch_memquota_type { struct quota_limit limits[Q_COUNTERS]; bch_memquota_table table; struct mutex lock; }; #endif /* _BCACHEFS_QUOTA_TYPES_H */