summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_io.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2017-11-12 18:23:29 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2017-11-12 18:23:29 -0500
commit74cb92203293a8d5b16b078389f6b3dba5300e89 (patch)
tree82abb80de4a6bcbb935cc02abdbad1ffb06ea29a /libbcachefs/btree_io.c
parent3347339bbd1e39fbb254d3d80f10b2e3b4d19e6e (diff)
Update bcachefs sources to 661faf58db bcachefs: fix a deadlock in journal replay error path
Diffstat (limited to 'libbcachefs/btree_io.c')
-rw-r--r--libbcachefs/btree_io.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libbcachefs/btree_io.c b/libbcachefs/btree_io.c
index b600842b..507a6a9d 100644
--- a/libbcachefs/btree_io.c
+++ b/libbcachefs/btree_io.c
@@ -1198,8 +1198,13 @@ int bch2_btree_node_read_done(struct bch_fs *c, struct btree *b, bool have_retry
goto err;
}
- if (ret)
- continue;
+ if (ret) {
+ btree_err_on(!b->written,
+ BTREE_ERR_FIXABLE, c, b, i,
+ "first btree node bset has blacklisted journal seq");
+ if (b->written)
+ continue;
+ }
__bch2_btree_node_iter_push(iter, b,
i->start,
@@ -1267,6 +1272,7 @@ static void btree_node_read_work(struct work_struct *work)
goto start;
do {
+ bch_info(c, "retrying read");
bio_reset(bio);
bio->bi_opf = REQ_OP_READ|REQ_SYNC|REQ_META;
bio->bi_bdev = rb->pick.ca->disk_sb.bdev;