diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2019-03-13 20:49:16 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:08:18 -0400 |
commit | 0564b16782b39d6f59e06f427f32826db69e75a2 (patch) | |
tree | a94a6de3e1ccf5c65c27dcadfb535b3756bfa0a6 /fs/bcachefs/tests.c | |
parent | 94d290e40c255ea854ec1050dbf9a8b60340a749 (diff) | |
download | lwn-0564b16782b39d6f59e06f427f32826db69e75a2.tar.gz lwn-0564b16782b39d6f59e06f427f32826db69e75a2.zip |
bcachefs: convert bch2_btree_insert_at() usage to bch2_trans_commit()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/tests.c')
-rw-r--r-- | fs/bcachefs/tests.c | 95 |
1 files changed, 57 insertions, 38 deletions
diff --git a/fs/bcachefs/tests.c b/fs/bcachefs/tests.c index bcbe782260f0..652e22125dcf 100644 --- a/fs/bcachefs/tests.c +++ b/fs/bcachefs/tests.c @@ -28,57 +28,63 @@ static void delete_test_keys(struct bch_fs *c) static void test_delete(struct bch_fs *c, u64 nr) { - struct btree_iter iter; + struct btree_trans trans; + struct btree_iter *iter; struct bkey_i_cookie k; int ret; bkey_cookie_init(&k.k_i); - bch2_btree_iter_init(&iter, c, BTREE_ID_DIRENTS, k.k.p, - BTREE_ITER_INTENT); + bch2_trans_init(&trans, c); + + iter = bch2_trans_get_iter(&trans, BTREE_ID_DIRENTS, k.k.p, + BTREE_ITER_INTENT); - ret = bch2_btree_iter_traverse(&iter); + ret = bch2_btree_iter_traverse(iter); BUG_ON(ret); - ret = bch2_btree_insert_at(c, NULL, NULL, 0, - BTREE_INSERT_ENTRY(&iter, &k.k_i)); + bch2_trans_update(&trans, BTREE_INSERT_ENTRY(iter, &k.k_i)); + ret = bch2_trans_commit(&trans, NULL, NULL, 0); BUG_ON(ret); pr_info("deleting once"); - ret = bch2_btree_delete_at(&iter, 0); + ret = bch2_btree_delete_at(&trans, iter, 0); BUG_ON(ret); pr_info("deleting twice"); - ret = bch2_btree_delete_at(&iter, 0); + ret = bch2_btree_delete_at(&trans, iter, 0); BUG_ON(ret); - bch2_btree_iter_unlock(&iter); + bch2_trans_exit(&trans); } static void test_delete_written(struct bch_fs *c, u64 nr) { - struct btree_iter iter; + struct btree_trans trans; + struct btree_iter *iter; struct bkey_i_cookie k; int ret; bkey_cookie_init(&k.k_i); - bch2_btree_iter_init(&iter, c, BTREE_ID_DIRENTS, k.k.p, - BTREE_ITER_INTENT); + bch2_trans_init(&trans, c); + + iter = bch2_trans_get_iter(&trans, BTREE_ID_DIRENTS, k.k.p, + BTREE_ITER_INTENT); - ret = bch2_btree_iter_traverse(&iter); + ret = bch2_btree_iter_traverse(iter); BUG_ON(ret); - ret = bch2_btree_insert_at(c, NULL, NULL, 0, - BTREE_INSERT_ENTRY(&iter, &k.k_i)); + bch2_trans_update(&trans, BTREE_INSERT_ENTRY(iter, &k.k_i)); + ret = bch2_trans_commit(&trans, NULL, NULL, 0); BUG_ON(ret); bch2_journal_flush_all_pins(&c->journal); - ret = bch2_btree_delete_at(&iter, 0); + ret = bch2_btree_delete_at(&trans, iter, 0); BUG_ON(ret); - bch2_btree_iter_unlock(&iter); + bch2_trans_exit(&trans); } static void test_iterate(struct bch_fs *c, u64 nr) @@ -415,26 +421,29 @@ static void rand_mixed(struct bch_fs *c, u64 nr) u64 i; for (i = 0; i < nr; i++) { - struct btree_iter iter; + struct btree_trans trans; + struct btree_iter *iter; struct bkey_s_c k; - bch2_btree_iter_init(&iter, c, BTREE_ID_DIRENTS, - POS(0, test_rand()), 0); + bch2_trans_init(&trans, c); - k = bch2_btree_iter_peek(&iter); + iter = bch2_trans_get_iter(&trans, BTREE_ID_DIRENTS, + POS(0, test_rand()), 0); + + k = bch2_btree_iter_peek(iter); if (!(i & 3) && k.k) { struct bkey_i_cookie k; bkey_cookie_init(&k.k_i); - k.k.p = iter.pos; + k.k.p = iter->pos; - ret = bch2_btree_insert_at(c, NULL, NULL, 0, - BTREE_INSERT_ENTRY(&iter, &k.k_i)); + bch2_trans_update(&trans, BTREE_INSERT_ENTRY(iter, &k.k_i)); + ret = bch2_trans_commit(&trans, NULL, NULL, 0); BUG_ON(ret); } - bch2_btree_iter_unlock(&iter); + bch2_trans_exit(&trans); } } @@ -457,7 +466,8 @@ static void rand_delete(struct bch_fs *c, u64 nr) static void seq_insert(struct bch_fs *c, u64 nr) { - struct btree_iter iter; + struct btree_trans trans; + struct btree_iter *iter; struct bkey_s_c k; struct bkey_i_cookie insert; int ret; @@ -465,18 +475,22 @@ static void seq_insert(struct bch_fs *c, u64 nr) bkey_cookie_init(&insert.k_i); - for_each_btree_key(&iter, c, BTREE_ID_DIRENTS, POS_MIN, - BTREE_ITER_SLOTS|BTREE_ITER_INTENT, k) { - insert.k.p = iter.pos; + bch2_trans_init(&trans, c); + + iter = bch2_trans_get_iter(&trans, BTREE_ID_DIRENTS, POS_MIN, + BTREE_ITER_SLOTS|BTREE_ITER_INTENT); + + for_each_btree_key_continue(iter, BTREE_ITER_SLOTS, k) { + insert.k.p = iter->pos; - ret = bch2_btree_insert_at(c, NULL, NULL, 0, - BTREE_INSERT_ENTRY(&iter, &insert.k_i)); + bch2_trans_update(&trans, BTREE_INSERT_ENTRY(iter, &insert.k_i)); + ret = bch2_trans_commit(&trans, NULL, NULL, 0); BUG_ON(ret); if (++i == nr) break; } - bch2_btree_iter_unlock(&iter); + bch2_trans_exit(&trans); } static void seq_lookup(struct bch_fs *c, u64 nr) @@ -491,21 +505,26 @@ static void seq_lookup(struct bch_fs *c, u64 nr) static void seq_overwrite(struct bch_fs *c, u64 nr) { - struct btree_iter iter; + struct btree_trans trans; + struct btree_iter *iter; struct bkey_s_c k; int ret; - for_each_btree_key(&iter, c, BTREE_ID_DIRENTS, POS_MIN, - BTREE_ITER_INTENT, k) { + bch2_trans_init(&trans, c); + + iter = bch2_trans_get_iter(&trans, BTREE_ID_DIRENTS, POS_MIN, + BTREE_ITER_INTENT); + + for_each_btree_key_continue(iter, 0, k) { struct bkey_i_cookie u; bkey_reassemble(&u.k_i, k); - ret = bch2_btree_insert_at(c, NULL, NULL, 0, - BTREE_INSERT_ENTRY(&iter, &u.k_i)); + bch2_trans_update(&trans, BTREE_INSERT_ENTRY(iter, &u.k_i)); + ret = bch2_trans_commit(&trans, NULL, NULL, 0); BUG_ON(ret); } - bch2_btree_iter_unlock(&iter); + bch2_trans_exit(&trans); } static void seq_delete(struct bch_fs *c, u64 nr) |