We have a consolidated places for "this btree lost data, run this
repair", so use it.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
        case BTREE_ID_accounting:
                ret = bch2_run_explicit_recovery_pass_persistent_locked(c, BCH_RECOVERY_PASS_check_allocations) ?: ret;
                goto out;
+       case BTREE_ID_snapshots:
+               ret = bch2_run_explicit_recovery_pass_persistent_locked(c, BCH_RECOVERY_PASS_reconstruct_snapshots) ?: ret;
+               ret = bch2_run_explicit_recovery_pass_persistent_locked(c, BCH_RECOVERY_PASS_scan_for_btree_nodes) ?: ret;
+               goto out;
        default:
                ret = bch2_run_explicit_recovery_pass_persistent_locked(c, BCH_RECOVERY_PASS_scan_for_btree_nodes) ?: ret;
                goto out;
 
        BUG_ON(!test_bit(BCH_FS_new_fs, &c->flags) &&
               test_bit(BCH_FS_may_go_rw, &c->flags));
 
-       if (bch2_err_matches(ret, EIO) ||
-           (c->sb.btrees_lost_data & BIT_ULL(BTREE_ID_snapshots)))
-               ret = bch2_run_explicit_recovery_pass_persistent(c, BCH_RECOVERY_PASS_reconstruct_snapshots);
-
        return ret;
 }