summaryrefslogtreecommitdiff
path: root/cmd_debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd_debug.c')
-rw-r--r--cmd_debug.c30
1 files changed, 25 insertions, 5 deletions
diff --git a/cmd_debug.c b/cmd_debug.c
index aee19fb..7cbeb90 100644
--- a/cmd_debug.c
+++ b/cmd_debug.c
@@ -37,6 +37,7 @@ static void dump_one_device(struct bch_fs *c, struct bch_dev *ca, int fd)
struct bch_sb *sb = ca->disk_sb.sb;
ranges data;
unsigned i;
+ int ret;
darray_init(data);
@@ -69,7 +70,7 @@ static void dump_one_device(struct bch_fs *c, struct bch_dev *ca, int fd)
bch2_trans_init(&trans, c, 0, 0);
- __for_each_btree_node(&trans, iter, i, POS_MIN, 0, 1, 0, b) {
+ __for_each_btree_node(&trans, iter, i, POS_MIN, 0, 1, 0, b, ret) {
struct btree_node_iter iter;
struct bkey u;
struct bkey_s_c k;
@@ -85,6 +86,9 @@ static void dump_one_device(struct bch_fs *c, struct bch_dev *ca, int fd)
}
}
+ if (ret)
+ die("error %s walking btree nodes", strerror(-ret));
+
b = c->btree_roots[i].b;
if (!btree_node_fake(b)) {
ptrs = bch2_bkey_ptrs_c(bkey_i_to_s_c(&b->key));
@@ -211,10 +215,11 @@ static void list_btree_formats(struct bch_fs *c, enum btree_id btree_id, unsigne
struct btree_iter iter;
struct btree *b;
char buf[4096];
+ int ret;
bch2_trans_init(&trans, c, 0, 0);
- __for_each_btree_node(&trans, iter, btree_id, start, 0, level, 0, b) {
+ __for_each_btree_node(&trans, iter, btree_id, start, 0, level, 0, b, ret) {
if (bkey_cmp(b->key.k.p, end) > 0)
break;
@@ -223,6 +228,9 @@ static void list_btree_formats(struct bch_fs *c, enum btree_id btree_id, unsigne
}
bch2_trans_iter_exit(&trans, &iter);
+ if (ret)
+ die("error %s walking btree nodes", strerror(-ret));
+
bch2_trans_exit(&trans);
}
@@ -233,10 +241,11 @@ static void list_nodes(struct bch_fs *c, enum btree_id btree_id, unsigned level,
struct btree_iter iter;
struct btree *b;
char buf[4096];
+ int ret;
bch2_trans_init(&trans, c, 0, 0);
- __for_each_btree_node(&trans, iter, btree_id, start, 0, level, 0, b) {
+ __for_each_btree_node(&trans, iter, btree_id, start, 0, level, 0, b, ret) {
if (bkey_cmp(b->key.k.p, end) > 0)
break;
@@ -246,6 +255,9 @@ static void list_nodes(struct bch_fs *c, enum btree_id btree_id, unsigned level,
}
bch2_trans_iter_exit(&trans, &iter);
+ if (ret)
+ die("error %s walking btree nodes", strerror(-ret));
+
bch2_trans_exit(&trans);
}
@@ -352,10 +364,11 @@ static void list_nodes_ondisk(struct bch_fs *c, enum btree_id btree_id, unsigned
struct btree_iter iter;
struct btree *b;
char buf[4096];
+ int ret;
bch2_trans_init(&trans, c, 0, 0);
- __for_each_btree_node(&trans, iter, btree_id, start, 0, level, 0, b) {
+ __for_each_btree_node(&trans, iter, btree_id, start, 0, level, 0, b, ret) {
if (bkey_cmp(b->key.k.p, end) > 0)
break;
@@ -367,6 +380,9 @@ static void list_nodes_ondisk(struct bch_fs *c, enum btree_id btree_id, unsigned
}
bch2_trans_iter_exit(&trans, &iter);
+ if (ret)
+ die("error %s walking btree nodes", strerror(-ret));
+
bch2_trans_exit(&trans);
}
@@ -380,10 +396,11 @@ static void list_nodes_keys(struct bch_fs *c, enum btree_id btree_id, unsigned l
struct bkey_s_c k;
struct btree *b;
char buf[4096];
+ int ret;
bch2_trans_init(&trans, c, 0, 0);
- __for_each_btree_node(&trans, iter, btree_id, start, 0, level, 0, b) {
+ __for_each_btree_node(&trans, iter, btree_id, start, 0, level, 0, b, ret) {
if (bkey_cmp(b->key.k.p, end) > 0)
break;
@@ -398,6 +415,9 @@ static void list_nodes_keys(struct bch_fs *c, enum btree_id btree_id, unsigned l
}
bch2_trans_iter_exit(&trans, &iter);
+ if (ret)
+ die("error %s walking btree nodes", strerror(-ret));
+
bch2_trans_exit(&trans);
}