mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 18:56:24 +00:00
bcachefs: disk accounting: ignore unknown types
forward compat fix Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
d9e615762b
commit
486d920735
@ -528,6 +528,9 @@ int bch2_gc_accounting_done(struct bch_fs *c)
|
||||
struct disk_accounting_pos acc_k;
|
||||
bpos_to_disk_accounting_pos(&acc_k, e->pos);
|
||||
|
||||
if (acc_k.type >= BCH_DISK_ACCOUNTING_TYPE_NR)
|
||||
continue;
|
||||
|
||||
u64 src_v[BCH_ACCOUNTING_MAX_COUNTERS];
|
||||
u64 dst_v[BCH_ACCOUNTING_MAX_COUNTERS];
|
||||
|
||||
@ -760,6 +763,12 @@ void bch2_verify_accounting_clean(struct bch_fs *c)
|
||||
struct bkey_s_c_accounting a = bkey_s_c_to_accounting(k);
|
||||
unsigned nr = bch2_accounting_counters(k.k);
|
||||
|
||||
struct disk_accounting_pos acc_k;
|
||||
bpos_to_disk_accounting_pos(&acc_k, k.k->p);
|
||||
|
||||
if (acc_k.type >= BCH_DISK_ACCOUNTING_TYPE_NR)
|
||||
continue;
|
||||
|
||||
bch2_accounting_mem_read(c, k.k->p, v, nr);
|
||||
|
||||
if (memcmp(a.v->d, v, nr * sizeof(u64))) {
|
||||
@ -775,9 +784,6 @@ void bch2_verify_accounting_clean(struct bch_fs *c)
|
||||
mismatch = true;
|
||||
}
|
||||
|
||||
struct disk_accounting_pos acc_k;
|
||||
bpos_to_disk_accounting_pos(&acc_k, a.k->p);
|
||||
|
||||
switch (acc_k.type) {
|
||||
case BCH_DISK_ACCOUNTING_persistent_reserved:
|
||||
base.reserved += acc_k.persistent_reserved.nr_replicas * a.v->d[0];
|
||||
|
Loading…
x
Reference in New Issue
Block a user