Re: [PATCH] bcachefs: don't return early from __btree_err for bad or incompatible node read errors
From: Bharadwaj Raju
Date: Sun Jun 15 2025 - 12:46:59 EST
On Sun, Jun 15, 2025 at 9:35 PM Kent Overstreet
<kent.overstreet@xxxxxxxxx> wrote:
> But then you're calling __bch2_topology_error()? When we're in
> scan_for_btree_nodes we're just checking if the node is readable, we
> shouldn't be doing anything that flags errors/recovery passes elsewhere.
Right, that makes sense. I originally put that in because the old
codepath would unset silent (which was set when in
scan_for_btree_nodes) only if __bch2_topology_error returned nonzero
in the case of bad_node.
> I think the correct fix would be more like
>
> if (scan_for_btree_nodes)
> return ret == -BCH_ERR_btree_node_read_err_fixable
> ? bch_err_throw(c, fsck_fix)
> : ret; /* or -BCH_ERR_btree_node_read_err_bad_node? */
>
Got it. I'll send the PATCH v2 then, thanks for the guidance!