53 lines
1.6 KiB
Diff
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
|
|
|