summaryrefslogtreecommitdiff
path: root/libbcachefs/move.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-10-24 21:24:05 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2021-10-24 21:24:05 -0400
commit1ce6454cfe16c15bf9a36b1b58af3a7ced55d6b8 (patch)
tree25903860700683309b1574603567c74e37efa5b7 /libbcachefs/move.c
parentf5c0b67603b2b31b010ccff58a8c0ea0bfed3a7f (diff)
Update bcachefs sources to cdf89ca564 bcachefs: Fix fsck path for refink pointers
Diffstat (limited to 'libbcachefs/move.c')
-rw-r--r--libbcachefs/move.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/libbcachefs/move.c b/libbcachefs/move.c
index 20396820..fae26009 100644
--- a/libbcachefs/move.c
+++ b/libbcachefs/move.c
@@ -768,7 +768,6 @@ next:
&stats->sectors_seen);
next_nondata:
bch2_btree_iter_advance(&iter);
- bch2_trans_cond_resched(&trans);
}
out:
@@ -911,10 +910,12 @@ retry:
BUG();
}
- ret = bch2_btree_node_rewrite(&trans, &iter,
- b->data->keys.seq, 0) ?: ret;
+ ret = bch2_btree_node_rewrite(&trans, &iter, b, 0) ?: ret;
+ if (ret == -EINTR)
+ continue;
+ if (ret)
+ break;
next:
- bch2_trans_cond_resched(&trans);
bch2_btree_iter_next_node(&iter);
}
if (ret == -EINTR)
@@ -931,6 +932,10 @@ next:
if (ret)
bch_err(c, "error %i in bch2_move_btree", ret);
+ /* flush relevant btree updates */
+ closure_wait_event(&c->btree_interior_update_wait,
+ !bch2_btree_interior_updates_nr_pending(c));
+
progress_list_del(c, stats);
return ret;
}
@@ -1074,10 +1079,6 @@ int bch2_data_job(struct bch_fs *c,
op.start_btree, op.start_pos,
op.end_btree, op.end_pos,
rereplicate_btree_pred, c, stats) ?: ret;
-
- closure_wait_event(&c->btree_interior_update_wait,
- !bch2_btree_interior_updates_nr_pending(c));
-
ret = bch2_replicas_gc2(c) ?: ret;
ret = bch2_move_data(c,