diff options
| author | Kent Overstreet <kent.overstreet@gmail.com> | 2017-11-12 18:23:29 -0500 |
|---|---|---|
| committer | Kent Overstreet <kent.overstreet@gmail.com> | 2017-11-12 18:23:29 -0500 |
| commit | 74cb92203293a8d5b16b078389f6b3dba5300e89 (patch) | |
| tree | 82abb80de4a6bcbb935cc02abdbad1ffb06ea29a /libbcachefs/btree_io.c | |
| parent | 3347339bbd1e39fbb254d3d80f10b2e3b4d19e6e (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.c | 10 |
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; |
