diff options
Diffstat (limited to 'fs/bcachefs/extents.c')
-rw-r--r-- | fs/bcachefs/extents.c | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/fs/bcachefs/extents.c b/fs/bcachefs/extents.c index c534b009bf60..3274ba42c995 100644 --- a/fs/bcachefs/extents.c +++ b/fs/bcachefs/extents.c @@ -1522,11 +1522,24 @@ int bch2_bkey_ptrs_validate(struct bch_fs *c, struct bkey_s_c k, "redundant stripe entry"); have_ec = true; break; - case BCH_EXTENT_ENTRY_rebalance: - ret = bch2_extent_rebalance_validate(c, k, from, &entry->rebalance); - if (ret) - return ret; + case BCH_EXTENT_ENTRY_rebalance: { + /* + * this shouldn't be a fsck error, for forward + * compatibility; the rebalance code should just refetch + * the compression opt if it's unknown + */ +#if 0 + const struct bch_extent_rebalance *r = &entry->rebalance; + + if (!bch2_compression_opt_valid(r->compression)) { + union bch_compression_opt opt = { .value = r->compression }; + prt_printf(err, "invalid compression opt %u:%u", + opt.type, opt.level); + return bch_err_throw(c, invalid_bkey); + } +#endif break; + } case BCH_EXTENT_ENTRY_flags: bkey_fsck_err_on(entry != ptrs.start, c, extent_flags_not_at_start, |