1 #ifndef _BUCKETS_TYPES_H
2 #define _BUCKETS_TYPES_H
4 #include "bcachefs_format.h"
7 #define BUCKET_JOURNAL_SEQ_BITS 16
24 * low bits of journal sequence number when this bucket was most
25 * recently modified: if journal_seq_valid is set, this bucket can't be
26 * reused until the journal sequence number written to disk is >= the
27 * bucket's journal sequence number:
36 struct bucket_mark _mark;
37 const struct bucket_mark mark;
52 struct bch_dev_usage {
53 u64 buckets[BCH_DATA_NR];
56 u64 buckets_unavailable;
58 /* _compressed_ sectors: */
59 u64 sectors[BCH_DATA_NR];
60 u64 sectors_fragmented;
64 /* all fields are in units of 512 byte sectors: */
68 /* fields after online_reserved are cleared/recalculated by gc: */
78 /* XXX: add stats for compression ratio */
86 u64 persistent_reserved[BCH_REPLICAS_MAX];
90 struct bch_fs_usage_short {
97 struct replicas_delta {
99 struct bch_replicas_entry r;
102 struct replicas_delta_list {
103 struct bch_fs_usage fs_usage;
105 struct replicas_delta *top;
106 struct replicas_delta d[0];
111 * A reservation for space on disk:
113 struct disk_reservation {
116 unsigned nr_replicas;
119 struct copygc_heap_entry {
125 typedef HEAP(struct copygc_heap_entry) copygc_heap;
127 #endif /* _BUCKETS_TYPES_H */