#define ZERO_VERSION   ((struct bversion) { .hi = 0, .lo = 0 })
 #define MAX_VERSION    ((struct bversion) { .hi = ~0, .lo = ~0ULL })
 
-static __always_inline int bversion_zero(struct bversion v)
+static __always_inline bool bversion_zero(struct bversion v)
 {
-       return !bversion_cmp(v, ZERO_VERSION);
+       return bversion_cmp(v, ZERO_VERSION) == 0;
 }
 
 #ifdef CONFIG_BCACHEFS_DEBUG
 
        void *end = &acc_k + 1;
        int ret = 0;
 
+       bkey_fsck_err_on(bversion_zero(k.k->bversion),
+                        c, accounting_key_version_0,
+                        "accounting key with version=0");
+
        switch (acc_k.type) {
        case BCH_DISK_ACCOUNTING_nr_inodes:
                end = field_end(acc_k, nr_inodes);
 
        x(accounting_key_replicas_nr_devs_0,                    278,    FSCK_AUTOFIX)   \
        x(accounting_key_replicas_nr_required_bad,              279,    FSCK_AUTOFIX)   \
        x(accounting_key_replicas_devs_unsorted,                280,    FSCK_AUTOFIX)   \
-       x(MAX,                                                  282,    0)
+       x(accounting_key_version_0,                             282,    FSCK_AUTOFIX)   \
+       x(MAX,                                                  283,    0)
 
 enum bch_sb_error_id {
 #define x(t, n, ...) BCH_FSCK_ERR_##t = n,