gentoo-overlay/sys-kernel/hardened-kernel/files/linux-6.12/0153-bcachefs-bkey_fsck_err...

53 lines
1.6 KiB
Diff

From 28d5570cd27b3ec683df66093c223751371c95a7 Mon Sep 17 00:00:00 2001
From: Kent Overstreet <kent.overstreet@linux.dev>
Date: Fri, 29 Nov 2024 18:20:42 -0500
Subject: [PATCH 153/233] bcachefs: bkey_fsck_err now respects errors_silent
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Signed-off-by: Alexander Miroshnichenko <alex@millerson.name>
---
fs/bcachefs/error.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/fs/bcachefs/error.c b/fs/bcachefs/error.c
index abaa9570cd62..9e34374960f3 100644
--- a/fs/bcachefs/error.c
+++ b/fs/bcachefs/error.c
@@ -476,11 +476,16 @@ int __bch2_bkey_fsck_err(struct bch_fs *c,
return -BCH_ERR_fsck_delete_bkey;
unsigned fsck_flags = 0;
- if (!(from.flags & (BCH_VALIDATE_write|BCH_VALIDATE_commit)))
+ if (!(from.flags & (BCH_VALIDATE_write|BCH_VALIDATE_commit))) {
+ if (test_bit(err, c->sb.errors_silent))
+ return -BCH_ERR_fsck_delete_bkey;
+
fsck_flags |= FSCK_AUTOFIX|FSCK_CAN_FIX;
+ }
+ if (!WARN_ON(err >= ARRAY_SIZE(fsck_flags_extra)))
+ fsck_flags |= fsck_flags_extra[err];
struct printbuf buf = PRINTBUF;
- va_list args;
prt_printf(&buf, "invalid bkey in %s btree=",
bch2_bkey_validate_contexts[from.from]);
@@ -489,9 +494,12 @@ int __bch2_bkey_fsck_err(struct bch_fs *c,
bch2_bkey_val_to_text(&buf, c, k);
prt_str(&buf, "\n ");
+
+ va_list args;
va_start(args, fmt);
prt_vprintf(&buf, fmt, args);
va_end(args);
+
prt_str(&buf, ": delete?");
int ret = __bch2_fsck_err(c, NULL, fsck_flags, err, "%s", buf.buf);
--
2.45.2