]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/recovery.c
Update bcachefs sources to cbb2e45634dd bcachefs: fix simulateously upgrading & downg...
[bcachefs-tools-debian] / libbcachefs / recovery.c
index e1f0da6a717e021b894ba39932275e8b2ed0b323..725214605a050996196c28a9132f8fe247e76d28 100644 (file)
@@ -696,8 +696,11 @@ static int bch2_run_recovery_passes(struct bch_fs *c)
 
        while (c->curr_recovery_pass < ARRAY_SIZE(recovery_pass_fns)) {
                if (should_run_recovery_pass(c, c->curr_recovery_pass)) {
+                       unsigned pass = c->curr_recovery_pass;
+
                        ret = bch2_run_recovery_pass(c, c->curr_recovery_pass);
-                       if (bch2_err_matches(ret, BCH_ERR_restart_recovery))
+                       if (bch2_err_matches(ret, BCH_ERR_restart_recovery) ||
+                           (ret && c->curr_recovery_pass < pass))
                                continue;
                        if (ret)
                                break;