diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-10-24 21:24:05 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2021-10-24 21:24:05 -0400 |
commit | 1ce6454cfe16c15bf9a36b1b58af3a7ced55d6b8 (patch) | |
tree | 25903860700683309b1574603567c74e37efa5b7 /libbcachefs/move.c | |
parent | f5c0b67603b2b31b010ccff58a8c0ea0bfed3a7f (diff) |
Update bcachefs sources to cdf89ca564 bcachefs: Fix fsck path for refink pointers
Diffstat (limited to 'libbcachefs/move.c')
-rw-r--r-- | libbcachefs/move.c | 17 |
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, |