summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2016-05-26 15:46:31 -0800
committerKent Overstreet <kent.overstreet@gmail.com>2016-08-28 19:15:15 -0800
commit691e6b0cf4d70de4c0d45ed7b5e2eb3f0b33c086 (patch)
treeb0f8faefd85898765cd26e571bf7890f98b31fda
parentdb1777ab41384e260c01eba995808866f30e94e9 (diff)
bcache: btree iterators deadlock fixme
-rw-r--r--drivers/md/bcache/btree_iter.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/md/bcache/btree_iter.c b/drivers/md/bcache/btree_iter.c
index b52f40cdf34b..ccd39883048f 100644
--- a/drivers/md/bcache/btree_iter.c
+++ b/drivers/md/bcache/btree_iter.c
@@ -628,6 +628,15 @@ retry:
ret = btree_iter_down(iter, pos, &cl);
if (unlikely(ret)) {
+ /*
+ * XXX this is wrong:
+ *
+ * we're not unlocking linked iterators - which
+ * means we're blocking on mca_cannibalize_lock
+ * with btree nodes locked -> deadlock
+ *
+ */
+
bch_btree_iter_unlock(iter);
closure_sync(&cl);