summaryrefslogtreecommitdiff
path: root/libbcachefs/migrate.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/migrate.c')
-rw-r--r--libbcachefs/migrate.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/libbcachefs/migrate.c b/libbcachefs/migrate.c
index f296cce9..bd1e54e0 100644
--- a/libbcachefs/migrate.c
+++ b/libbcachefs/migrate.c
@@ -119,34 +119,29 @@ static int bch2_dev_usrdata_drop(struct bch_fs *c,
struct progress_indicator_state *progress,
unsigned dev_idx, unsigned flags)
{
- struct btree_trans *trans = bch2_trans_get(c);
- enum btree_id id;
- int ret = 0;
+ CLASS(btree_trans, trans)(c);
- for (id = 0; id < BTREE_ID_NR; id++) {
+ for (unsigned id = 0; id < BTREE_ID_NR; id++) {
if (!btree_type_has_ptrs(id))
continue;
- ret = for_each_btree_key_commit(trans, iter, id, POS_MIN,
+ int ret = for_each_btree_key_commit(trans, iter, id, POS_MIN,
BTREE_ITER_prefetch|BTREE_ITER_all_snapshots, k,
NULL, NULL, BCH_TRANS_COMMIT_no_enospc, ({
bch2_progress_update_iter(trans, progress, &iter, "dropping user data");
bch2_dev_usrdata_drop_key(trans, &iter, k, dev_idx, flags);
}));
if (ret)
- break;
+ return ret;
}
- bch2_trans_put(trans);
-
- return ret;
+ return 0;
}
static int bch2_dev_metadata_drop(struct bch_fs *c,
struct progress_indicator_state *progress,
unsigned dev_idx, unsigned flags)
{
- struct btree_trans *trans;
struct btree_iter iter;
struct closure cl;
struct btree *b;
@@ -158,7 +153,7 @@ static int bch2_dev_metadata_drop(struct bch_fs *c,
if (flags & BCH_FORCE_IF_METADATA_LOST)
return bch_err_throw(c, remove_with_metadata_missing_unimplemented);
- trans = bch2_trans_get(c);
+ CLASS(btree_trans, trans)(c);
bch2_bkey_buf_init(&k);
closure_init_stack(&cl);
@@ -199,7 +194,6 @@ next:
ret = 0;
err:
bch2_bkey_buf_exit(&k, c);
- bch2_trans_put(trans);
BUG_ON(bch2_err_matches(ret, BCH_ERR_transaction_restart));
@@ -240,7 +234,7 @@ out:
int bch2_dev_data_drop_by_backpointers(struct bch_fs *c, unsigned dev_idx, unsigned flags)
{
- struct btree_trans *trans = bch2_trans_get(c);
+ CLASS(btree_trans, trans)(c);
struct bkey_buf last_flushed;
bch2_bkey_buf_init(&last_flushed);
@@ -260,7 +254,6 @@ int bch2_dev_data_drop_by_backpointers(struct bch_fs *c, unsigned dev_idx, unsig
}));
bch2_bkey_buf_exit(&last_flushed, trans->c);
- bch2_trans_put(trans);
bch_err_fn(c, ret);
return ret;
}