From fbb223308961067a44d343cbca515aa12a745bde Mon Sep 17 00:00:00 2001 From: Thomas Bertschinger Date: Sun, 28 Apr 2024 21:57:07 -0600 Subject: [PATCH] WIP: add no_invalid_checks flag for FS and trans Signed-off-by: Thomas Bertschinger --- libbcachefs/bcachefs.h | 3 ++- libbcachefs/bkey_methods.c | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libbcachefs/bcachefs.h b/libbcachefs/bcachefs.h index 91c3c1fe..d7269b7a 100644 --- a/libbcachefs/bcachefs.h +++ b/libbcachefs/bcachefs.h @@ -632,7 +632,8 @@ struct bch_dev { x(error) \ x(topology_error) \ x(errors_fixed) \ - x(errors_not_fixed) + x(errors_not_fixed) \ + x(no_invalid_checks) enum bch_fs_flags { #define x(n) BCH_FS_##n, diff --git a/libbcachefs/bkey_methods.c b/libbcachefs/bkey_methods.c index db336a43..1062d1d6 100644 --- a/libbcachefs/bkey_methods.c +++ b/libbcachefs/bkey_methods.c @@ -129,6 +129,9 @@ int bch2_bkey_val_invalid(struct bch_fs *c, struct bkey_s_c k, const struct bkey_ops *ops = bch2_bkey_type_ops(k.k->type); int ret = 0; + if (test_bit(BCH_FS_no_invalid_checks, &c->flags)) + return 0; + bkey_fsck_err_on(bkey_val_bytes(k.k) < ops->min_val_size, c, err, bkey_val_size_too_small, "bad val size (%zu < %u)", @@ -164,6 +167,9 @@ int __bch2_bkey_invalid(struct bch_fs *c, struct bkey_s_c k, { int ret = 0; + if (test_bit(BCH_FS_no_invalid_checks, &c->flags)) + return 0; + bkey_fsck_err_on(k.k->u64s < BKEY_U64s, c, err, bkey_u64s_too_small, "u64s too small (%u < %zu)", k.k->u64s, BKEY_U64s);