Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.9-rc7 74 lines 2.0 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _BCACHEFS_QUOTA_H 3#define _BCACHEFS_QUOTA_H 4 5#include "inode.h" 6#include "quota_types.h" 7 8enum bkey_invalid_flags; 9extern const struct bch_sb_field_ops bch_sb_field_ops_quota; 10 11int bch2_quota_invalid(struct bch_fs *, struct bkey_s_c, 12 enum bkey_invalid_flags, struct printbuf *); 13void bch2_quota_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c); 14 15#define bch2_bkey_ops_quota ((struct bkey_ops) { \ 16 .key_invalid = bch2_quota_invalid, \ 17 .val_to_text = bch2_quota_to_text, \ 18 .min_val_size = 32, \ 19}) 20 21static inline struct bch_qid bch_qid(struct bch_inode_unpacked *u) 22{ 23 return (struct bch_qid) { 24 .q[QTYP_USR] = u->bi_uid, 25 .q[QTYP_GRP] = u->bi_gid, 26 .q[QTYP_PRJ] = u->bi_project ? u->bi_project - 1 : 0, 27 }; 28} 29 30static inline unsigned enabled_qtypes(struct bch_fs *c) 31{ 32 return ((c->opts.usrquota << QTYP_USR)| 33 (c->opts.grpquota << QTYP_GRP)| 34 (c->opts.prjquota << QTYP_PRJ)); 35} 36 37#ifdef CONFIG_BCACHEFS_QUOTA 38 39int bch2_quota_acct(struct bch_fs *, struct bch_qid, enum quota_counters, 40 s64, enum quota_acct_mode); 41 42int bch2_quota_transfer(struct bch_fs *, unsigned, struct bch_qid, 43 struct bch_qid, u64, enum quota_acct_mode); 44 45void bch2_fs_quota_exit(struct bch_fs *); 46void bch2_fs_quota_init(struct bch_fs *); 47int bch2_fs_quota_read(struct bch_fs *); 48 49extern const struct quotactl_ops bch2_quotactl_operations; 50 51#else 52 53static inline int bch2_quota_acct(struct bch_fs *c, struct bch_qid qid, 54 enum quota_counters counter, s64 v, 55 enum quota_acct_mode mode) 56{ 57 return 0; 58} 59 60static inline int bch2_quota_transfer(struct bch_fs *c, unsigned qtypes, 61 struct bch_qid dst, 62 struct bch_qid src, u64 space, 63 enum quota_acct_mode mode) 64{ 65 return 0; 66} 67 68static inline void bch2_fs_quota_exit(struct bch_fs *c) {} 69static inline void bch2_fs_quota_init(struct bch_fs *c) {} 70static inline int bch2_fs_quota_read(struct bch_fs *c) { return 0; } 71 72#endif 73 74#endif /* _BCACHEFS_QUOTA_H */