/* 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 */ |