summaryrefslogtreecommitdiff
path: root/libbcachefs/journal.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/journal.c')
-rw-r--r--libbcachefs/journal.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/libbcachefs/journal.c b/libbcachefs/journal.c
index 60c5c9b0..76a3b465 100644
--- a/libbcachefs/journal.c
+++ b/libbcachefs/journal.c
@@ -1077,20 +1077,26 @@ fsck_err:
return ret;
}
-void bch2_journal_mark(struct bch_fs *c, struct list_head *list)
+int bch2_journal_mark(struct bch_fs *c, struct list_head *list)
{
struct bkey_i *k, *n;
struct jset_entry *j;
struct journal_replay *r;
+ int ret;
list_for_each_entry(r, list, list)
for_each_jset_key(k, n, j, &r->j) {
enum bkey_type type = bkey_type(j->level, j->btree_id);
struct bkey_s_c k_s_c = bkey_i_to_s_c(k);
- if (btree_type_has_ptrs(type))
- bch2_btree_mark_key_initial(c, type, k_s_c);
+ if (btree_type_has_ptrs(type)) {
+ ret = bch2_btree_mark_key_initial(c, type, k_s_c);
+ if (ret)
+ return ret;
+ }
}
+
+ return 0;
}
static bool journal_entry_is_open(struct journal *j)